public static function getMenus($pid = 0) { $arr = array(); $arr[0] = '作为一级菜单'; $menus = Menu::find()->where(['pid' => $pid])->all(); if ($menus) { foreach ($menus as $key => $value) { $arr[$key] = $value->name; } } return $arr; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Menu::find(); $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; } $query->andFilterWhere(['id' => $this->id, 'order' => $this->order]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'route', $this->route])->andFilterWhere(['like', 'data', $this->data]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Menu::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_ASC, 'sort_val' => SORT_ASC]]]); $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; } $query->andFilterWhere(['id' => $this->id, 'pid' => $this->pid, 'mg_id' => $this->mg_id, 'sort_val' => $this->sort_val, 'created_at' => $this->created_at]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'url', $this->url])->andFilterWhere(['like', 'param', $this->param])->andFilterWhere(['like', 'theme', $this->theme]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Menu::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'timestamp' => $this->timestamp]); $query->andFilterWhere(['like', 'title', $this->title]); return $dataProvider; }
height: 13px; width: 13px; } .notice { color: #c33; } </style> <div class="col-md-12"> <div class="row"> <div class="col-md-4"> <label>Select Menu</label> <select name="MENU_select" class="form-control MENU_select"> <?php $menus = Menu::find()->all(); foreach ($menus as $key) { echo '<option value="' . $key->id . '">' . $key->title . '</option>'; } ?> </select> </div> </div> </div> <div class="col-md-4"> <div class="box dark full-screen-box"> <header>
<img src="<?php echo Yii::$app->user->identity->avatar48; ?> " class="img-rounded" alt="User Image"/> </div> <div class="pull-left info"> <p><?php echo Yii::$app->user->identity->username; ?> </p> <a href="#"><i class="fa fa-circle text-success"></i> Online</a> </div> </div> <?php $item = []; $menu = Menu::find()->orderBy('order')->all(); foreach ($menu as $k => $m) { $item[$k]['label'] = $m->data . '<span>' . $m->name . '</span>'; $item[$k]['url'] = [$m->route]; } ?> <?php echo Nav::widget(['encodeLabels' => false, 'activateItems' => true, 'options' => ['class' => 'sidebar-menu'], 'items' => $item]); ?> </section> </aside>
/** * Lists all Menu models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Menu::find()]); return $this->render('index', ['dataProvider' => $dataProvider]); }
/** * 快捷菜单 * @return {[type]} [description] * @version 1.0 2016-01-25T12:24:11+0800 * @author cnzhangxl@foxmail.com */ public function actionMy() { $dataProvider = new ActiveDataProvider(['query' => Menu::find()->andWhere(['mg_id' => Yii::$app->user->id])->orderBy('sort_val asc')]); return $this->render('my', ['dataProvider' => $dataProvider]); }
public function actionDataTables() { $responseType = Yii::$app->request->get('type'); $returnData = []; switch ($responseType) { case "fetch": $returnData = Menu::find()->select(['id', 'name', 'parent', 'route', 'order', 'data'])->where(['parent' => Yii::$app->request->get('id')])->orderBy(['order' => SORT_ASC])->all(); return Json::encode($returnData); case "crud": $requestAction = Yii::$app->request->post('action'); switch ($requestAction) { case "create": $requestID = key(Yii::$app->request->post('data')); $requestData = Yii::$app->request->post('data')[$requestID]; $model = new Menu(); //块赋值 $model->attributes = $requestData; //返回错误信息给datatable if (!$model->validate()) { $fieldErrors = []; foreach ($model->errors as $name => $status) { $fieldErrors[] = ['name' => $name, 'status' => Json::encode($status)]; } return Json::encode(['fieldErrors' => $fieldErrors, 'data' => []]); } if ($model->save()) { $requestData['id'] = $model->id; $data = []; $data[] = $requestData; return Json::encode(['data' => $data]); } else { var_dump($model->errors); $error = '恢复操作发生意外!'; throw new Exception($error); } case "edit": $editID = array_keys(Yii::$app->request->post('data')); //执行事务,保存必须都成功了才行 $transaction = Menu::getDb()->beginTransaction(); //返回值 $data = []; try { foreach ($editID as $requestID) { $requestData = Yii::$app->request->post('data')[$requestID]; $model = Menu::findOne($requestID); //块赋值 $model->attributes = $requestData; //返回错误信息给datatable if (!$model->validate()) { $fieldErrors = []; foreach ($model->errors as $name => $status) { $fieldErrors[] = ['name' => $name, 'status' => Json::encode($status)]; } return Json::encode(['fieldErrors' => $fieldErrors, 'data' => []]); } $model->save(); //单个字段更新的时候 if (count($requestData) == 1 || !is_array($requestData)) { $requestData = Menu::find()->select(['id', 'name', 'parent', 'route', 'order', 'data'])->where(['id' => $requestID])->one(); } else { $requestData['id'] = $requestID; } $data[] = $requestData; } //提交事务 $transaction->commit(); return Json::encode(['data' => $data]); } catch (\Exception $e) { $transaction->rollBack(); throw $e; } case "remove": //多选则删除全部 用deleteAll()不会触发 event: EVENT_BEFORE_DELETE 和 EVENT_AFTER_DELETE foreach (Yii::$app->request->post('data') as $removeID => $removeData) { Menu::findOne($removeID)->delete(); } return Json::encode($returnData); default: return Json::encode($returnData); } default: throw new \Exception('参数错误!'); } }
/** * 获取快捷菜单列表 * @return [type] [description] * @version 1.0 2016-01-25T17:32:51+0800 * @author zhangxianglong@yolo24.com */ public static function getMyMenuList() { $cache_key = 'backend_my_menu_' . Yii::$app->user->id; $menu_list = Yii::$app->cache->get($cache_key); if ($menu_list === false) { $menu_list = Menu::find()->where(['mg_id' => Yii::$app->user->id])->orderBy('sort_val ASC')->asArray()->all(); Yii::$app->cache->set($cache_key, $menu_list, 86400); } return $menu_list; }