コード例 #1
0
 public function up()
 {
     $news_menu = Menu::findOne(['menu_name' => "资讯管理", 'menu_depth' => 0]);
     // 首页热门活动管理
     $this->insert('{{%admin_menu}}', ['menu_name' => '首页热门活动管理', 'menu_link' => "news/activity-block", 'show_order' => 1, 'creator' => "niancode", 'create_time' => time(), 'parent_id' => $news_menu->id, 'menu_depth' => 1]);
     $insert_id = $this->db->getLastInsertID();
     $this->insert('{{%admin_menu}}', ['menu_name' => '添加热门活动', 'menu_link' => "news/activity-block-save", 'show_order' => 0, 'creator' => "niancode", 'create_time' => time(), 'parent_id' => $insert_id, 'menu_depth' => 2]);
     $this->insert('{{%admin_menu}}', ['menu_name' => '修改热门活动', 'menu_link' => "news/activity-block-delete", 'show_order' => 1, 'creator' => "niancode", 'create_time' => time(), 'parent_id' => $insert_id, 'menu_depth' => 2]);
 }
 public function up()
 {
     // 修改菜单名称
     $activity_menu = Menu::findOne(['menu_name' => "首页热门活动管理", 'menu_depth' => 1]);
     if ($activity_menu) {
         $activity_menu->menu_name = '资讯首页热门活动管理';
         $activity_menu->save(false);
     }
     // 资讯首页热门活动
     $this->insert('{{%page_custom_block}}', ['id' => 6, 'name' => "首页资讯管理", 'custom_id' => "main_page_news", 'title' => "首页资讯管理", 'sub_title' => "首页资讯管理", 'data' => '', 'create_time' => time(), 'update_time' => time()]);
     // 首页推荐资讯菜单
     $news_menu = Menu::findOne(['menu_name' => "首页管理", 'menu_depth' => 0]);
     $this->insert('{{%admin_menu}}', ['menu_name' => '首页资讯管理', 'menu_link' => "news/recommend", 'show_order' => 8, 'creator' => "niancode", 'create_time' => time(), 'parent_id' => $news_menu->id, 'menu_depth' => 1]);
 }
コード例 #3
0
ファイル: MenuController.php プロジェクト: hsleonis/basetech
 /**
  * Finds the Menu model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Menu the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Menu::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
コード例 #4
0
ファイル: MenuController.php プロジェクト: tqsq2005/Yii2adv
 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('参数错误!');
     }
 }