示例#1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = CmsMenu::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['menu_id' => $this->menu_id, 'page_id' => $this->page_id, 'parent_menu_id' => $this->parent_menu_id, 'area_id' => $this->area_id, 'created_by' => $this->created_by, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     return $dataProvider;
 }
示例#2
0
 /**
  * Retrieve all child menu's given area and parent
  * @param integer $area_id, integer $parent_id
  * @return Array $cmenu
  */
 public function getChildMenus($area_id, $parent_id)
 {
     if (empty($parent_id)) {
         return null;
     } else {
         $child_menus = CmsMenu::find()->where(['area_id' => $area_id, 'parent_menu_id' => $parent_id])->asArray()->all();
         $cmenu = null;
         if (count($child_menus) > 0) {
             foreach ($child_menus as $child_menu) {
                 $menu_model = $this->findModel($child_menu['menu_id']);
                 if ($menu_model->page->status == 1) {
                     $cmenu[] = array('menu_id' => $child_menu['menu_id'], 'menu_title' => $menu_model->page->menu_title, 'menu_status' => $menu_model->page->status, 'parent_menu_id' => $child_menu['parent_menu_id'], 'page_id' => $child_menu['page_id'], 'sort_order' => $child_menu['sort_order'], 'sub_children' => $this->getChildMenus($child_menu['area_id'], $child_menu['menu_id']));
                 }
             }
         }
         return $cmenu;
     }
 }