## 什么是后臺菜單注解
為了方便在代碼里進行后臺菜單管理我們新增了`@adminMenu`和`@adminMenuRoot`兩個自定義的注解,通過這個注解我們可以很輕松地在代碼中管理后臺菜單,比如菜單的名稱,排序,是否顯示,父級等;`@adminMenu`是方法級的注解,只對方法有效,每個后臺控制器方法只支持一個`@adminMenu`注解,`@adminMenuRoot`是類級的注解,只有在給類注釋時有效,每個后臺控制器類可以支持多個`@adminMenuRoot`注解
## 后臺菜單入口注解`@adminMenuRoot`
下面以`app\admin\controller\SettingController`為例:
```php
<?php
namespace app\admin\controller;
use cmf\controller\AdminBaseController;
use think\Db;
/**
* Class SettingController
* @package app\admin\controller
* @adminMenuRoot(
* 'name' =>'設置',
* 'action' =>'default',
* 'parent' =>'',
* 'display'=> true,
* 'order' => 10000,
* 'icon' =>'cogs',
* 'remark' =>'系統設置入口'
* )
*/
class SettingController extends AdminBaseController
{
/**
* 密碼修改
* @adminMenu(
* 'name' => '密碼修改',
* 'parent' => 'default',
* 'display'=> false,
* 'hasView'=> true,
* 'order' => 10000,
* 'icon' => '',
* 'remark' => '密碼修改',
* 'param' => ''
* )
*/
public function password()
{
return $this->fetch();
}
}
```
以上代碼中,我們給 SettingController類增加了一個類級別的`@adminMenuRoot`注解,它的格式就是一個變形 php 數組,語法和 php 數組完全一樣,數組里的屬性就是這個后臺菜單入口的屬性,
```
/**
* @adminMenuRoot(
* 'name' =>'設置', // 菜單名稱
* 'action' =>'default', // 菜單操作,這是一個虛擬的控制器操作,它不會在這個控制器有對應的方法
* 'parent' =>'',//菜單父級,格式有三種:應用名/控制器/操作,控制器/操作,操作
* 'display'=> true,//菜單是否顯示
* 'order' => 10000,//菜單排序
* 'icon' =>'cogs',//菜單圖標
* 'remark' =>'系統設置入口' //菜單備注
* )
*/
```
## 后臺菜單注解`@adminMenu`
同樣以`app\admin\controller\SettingController`為例:
```php
<?php
namespace app\admin\controller;
use cmf\controller\AdminBaseController;
use think\Db;
/**
* Class SettingController
* @package app\admin\controller
* @adminMenuRoot(
* 'name' =>'設置',
* 'action' =>'default',
* 'parent' =>'',
* 'display'=> true,
* 'order' => 10000,
* 'icon' =>'cogs',
* 'remark' =>'系統設置入口'
* )
*/
class SettingController extends AdminBaseController
{
/**
* 密碼修改
* @adminMenu(
* 'name' => '密碼修改',
* 'parent' => 'default',
* 'display'=> false,
* 'hasView'=> false,
* 'order' => 10000,
* 'icon' => '',
* 'remark' => '密碼修改',
* 'param' => ''
* )
*/
public function password()
{
return $this->fetch();
}
}
```
上面的代碼中,我們給 `password`操作增加了一個方法級別的`@adminMenu`注解,它的格式也是一個變形 php 數組,語法和 php 數組完全一樣,數組里的屬性就是這個后臺菜單的屬性,
```
/**
* @adminMenu(
* 'name' => '密碼修改', // 菜單名稱
* 'parent' => 'default', //菜單父級,格式有三種:應用名/控制器/操作,控制器/操作,操作
* 'display'=> false, //菜單是否顯示
* 'hasView'=> false,//菜單是否有界面
* 'order' => 10000, //菜單排序
* 'icon' => '', //菜單排序
* 'remark' => '密碼修改', //菜單備注
* 'param' => '' //菜單額外參數,一般沒有
* )
*/
```
## 導入菜單
> 快捷方式中的菜單管理只在調試模式下才會顯示,如果生產環境中要進行后臺菜單管理,可以訪問:`你的域名/admin/menu/index`,后臺菜單管理主要是給開發者用的,所以生產環境中會隱藏。

點上面的`導入新菜單`按鈕,你在控制器里加的菜單注解就會自動變成后臺菜單,你不用改什么菜單就會創建好了!
- 序言
- 運行環境
- nginx rewrite
- apache rewrite
- IIS rewrite
- MAC開發
- HTTPS配置
- 更安全的nginx配置
- 關閉調試模式
- 6.0調試模式
- 開發工具
- 郵箱配置
- 163郵箱配置
- QQ郵箱配置
- 安裝門戶應用
- 5.1及以前版本安裝
- 驗證碼問題
- 遷移到正式環境
- 支持虛擬機
- 5.0支持虛擬機
- 5.1支持虛擬機
- 如何保證代碼同時兼容5.1和6.0
- 站群部署
- 部署原理
- 如何使用CMF做商業軟件
- 商業化使用概述
- 去除界面上的ThinkCMF
- 更改前后臺默認模板
- 定制安裝應用
- 讓應用自動安裝
- 更改默認核心的邏輯
- 忘記后臺密碼
- 后臺地址是?
- 插件安裝
- 模板安裝
- 更換后臺主題
- 關閉數字驗證碼
- 獲取前臺用戶信息
- 獲取當前管理員
- 引入第三方庫
- 分頁參數丟失
- 什么是數據集?
- 基類你理解了嗎?
- 你的后臺菜單管理正確嗎?
- 安裝API模塊
- 持續升級
- 面包屑為什么空?
- composer庫管理
- 提升網站速度
- 七牛云
- 七牛云插件配置
- 原圖保護
- 七牛圖片處理
- 防止百度移動端轉碼