Your IP : 216.73.216.79


Current Path : /var/www/html/persada/backend/modules/menu/models/backend/
Upload File :
Current File : /var/www/html/persada/backend/modules/menu/models/backend/Menu.php

<?php

namespace backend\modules\menu\models\backend;

use Yii;
use backend\modules\mimin\models\Route;
use backend\modules\mimin\models\AuthItem;

/**
 * This is the model class for table "frontend_menu".
 *
 * @property integer $menu_id
 * @property string $menu_name
 * @property integer $menu_order
 * @property integer $page_id
 * @property string $menu_link
 * @property integer $menu_type
 * @property integer $menu_parent_id
 */
class Menu extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'backend_menu';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['menu_name', 'menu_link', 'menu_class', 'menu_param'], 'string'],
            [['menu_active_route'], 'safe'],
            [['menu_parent_id', 'menu_status'], 'integer'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'menu_id' => 'Menu ID',
            'menu_name' => 'Menu Name',
            'menu_link' => 'Menu Link',
            'menu_parent_id' => 'Menu Parent ID',
        ];
    }
	
	public static function dropdown($parent_id=0){
		static $dropdown;		
		if($dropdown == null){
			$dropdown[0] = "Without parent menu";
			$models = static::find()->all();
			foreach($models as $model){
				$dropdown[$model->menu_id] = $model->menu_name;				
			}
		}
		
		return $dropdown;
	}

    public static function listofmenu(){
        $menu = self::find()->where(['menu_status' => 1])->orderBy('menu_id DESC')->all();
        $arr = [];
        array_walk($menu, function($v, $i) use (&$arr){
            return $arr[$v->menu_id] = $v->menu_name . ' - ID:' . $v->menu_id;
        });
        return $arr;
    }


    // require mimin modules
    public static function getRoute(){
        $r = Route::find()->where('alias NOT LIKE "%*%" AND status = 1')->orderBy('name')->all();
        $arr = [];
        array_walk($r, function($v, $i) use (&$arr) {
            return $arr[$v->name] = $v->name;
        });
        return $arr;
    }

    public static function getRole() {
        $i = AuthItem::find()->where(['type'=>1])->orderBy('name')->all();
        $arr = [];
        array_walk($i, function($v, $i) use (&$arr) {
            return $arr[$v->name] = $v->name;
        });
        return $arr;
    }
    
    public function beforeSave($insert){
        if(is_array($this->menu_active_route)) {
            $this->menu_active_route = json_encode($this->menu_active_route);
        }
        
        return parent::beforeSave($insert);
    }
}