Menu.php 2.95 KB
<?php

namespace backend\models;

use Yii;

/**
 * This is the model class for table "menu".
 *
 * @property integer $menu_id
 * @property integer $menu_pid
 * @property integer $level
 * @property integer $termin_id
 * @property integer $show
 * @property integer $is_open
 * @property integer $menu_location_id
 * @property integer $sortorder
 * @property string $name
 * @property string $url
 *
 * @property Termin $termin
 */
class Menu extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'menu';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['menu_id', 'menu_pid', 'level', 'termin_id', 'status', 'is_open', 'menu_location_id', 'sort'], 'required'],
            [['menu_id', 'menu_pid', 'level', 'termin_id', 'status', 'is_open', 'menu_location_id', 'sort'], 'integer'],
            [['name', 'url'], 'string', 'max' => 250]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'menu_id' => Yii::t('app', 'Menu ID'),
            'menu_pid' => Yii::t('app', 'Menu Pid'),
            'level' => Yii::t('app', 'Level'),
            'termin_id' => Yii::t('app', 'Termin ID'),
            'status' => Yii::t('app', 'Show'),
            'is_open' => Yii::t('app', 'Is Open'),
            'menu_location_id' => Yii::t('app', 'Menu Location ID'),
            'sort' => Yii::t('app', 'Sortorder'),
            'name' => Yii::t('app', 'Name'),
            'url' => Yii::t('app', 'Url'),
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getTermin()
    {
        return $this->hasOne(Termin::className(), ['termin_id' => 'termin_id']);
    }
    
    public function getMenuList ($location_name)
    {
        return yii::$app->db->createCommand('
            SELECT
                menu.menu_id, menu.menu_pid, menu.level,
                termin_lang.termin_title, termin_lang.termin_alias
            FROM menu
                INNER JOIN menu_location ON menu_location.menu_location_id = menu.menu_location_id
                    AND menu_location.menu_location_name = \''.$location_name.'\'
                INNER JOIN termin ON termin.termin_id = menu.termin_id
                INNER JOIN termin_lang ON termin_lang.termin_id = menu.termin_id
                    AND termin_lang.language_id = '.Yii::$app->params['language_id'].'
            ORDER BY menu.level ASC, menu.sort ASC
        ')->queryAll();
/*
         return $this->find()
             ->selectOption('termin_lang.termin_title')
             ->from('menu')
             ->join(
                 'INNER JOIN',
                 'termin_lang.termin_id = menu.termin_id',
                 ['language_id' => yii::$app->params['language_id']])
            ->all();
 */
    }    

    public function getTerminLang()
    {
        return $this->hasOne(TerminLang::className(), ['termin_id' => 'termin_id']);
    }
}