插件后台菜单
优质
小牛编辑
138浏览
2023-12-01
插件后台菜单
我们可以在插件的后台控制器的方法上添加后台菜单注解@adminMenu
,以实现插件后台菜单的添加。 那么什么是后台菜单注解?
后台菜单注解@adminMenu
,@adminMenuRoot
同样以Demo 插件的AdminIndexController
为例:
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2014 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: Dean <zxxjjforever@163.com>
// +----------------------------------------------------------------------
namespace plugins\demo\controller; //Demo插件英文名,改成你的插件英文就行了
use cmf\controller\PluginAdminBaseController;
use think\Db;
/**
* Class AdminIndexController
* @package plugins\demo\controller
* @adminMenuRoot(
* 'name' =>'演示插件',
* 'action' =>'default',
* 'parent' =>'',
* 'display'=> true,
* 'order' => 0,
* 'icon' =>'dashboard',
* 'remark' =>'系统设置入口'
* )
*/
class AdminIndexController extends PluginAdminBaseController
{
protected function initialize()
{
parent::initialize();
$adminId = cmf_get_current_admin_id();//获取后台管理员id,可判断是否登录
if (!empty($adminId)) {
$this->assign("admin_id", $adminId);
}
}
/**
* 演示插件用户列表
* @adminMenu(
* 'name' => '演示插件用户列表',
* 'parent' => 'default',
* 'display'=> true,
* 'hasView'=> true,
* 'order' => 10000,
* 'icon' => '',
* 'remark' => '演示插件用户列表',
* 'param' => ''
* )
*/
public function index()
{
// $result = $this->validate([], 'Demo');
// if ($result !== true) {
// $this->error($result);
// }
$users = Db::name("user")->limit(0, 5)->select();
//$demos = PluginDemoModel::all();
// print_r($demos);
$this->assign("users", $users);
$this->assign("users", $users);
return $this->fetch('/admin_index');
}
/**
* 演示插件设置
* @adminMenu(
* 'name' => '演示插件设置',
* 'parent' => 'index',
* 'display'=> false,
* 'hasView'=> true,
* 'order' => 10000,
* 'icon' => '',
* 'remark' => '演示插件设置',
* 'param' => ''
* )
*/
public function setting()
{
$users = Db::name("user")->limit(0, 5)->select();
//$demos = PluginDemoModel::all();
// print_r($demos);
$this->assign("users", $users);
$this->assign("users", $users);
return $this->fetch('/admin_index');
}
}
上面的代码中,我们给 AdminIndexController
类增加了一个类级别的@adminMenuRoot
注解,它的格式也是一个变形 php 数组,语法和 php 数组完全一样,数组里的属性就是这个后台菜单的属性,
/**
* Class AdminIndexController
* @package plugins\demo\controller
* @adminMenuRoot(
* 'name' =>'演示插件',
* 'action' =>'default',
* 'parent' =>'',
* 'display'=> true,
* 'order' => 0,
* 'icon' =>'dashboard',
* 'remark' =>'演示插件入口'
* )
*/
上面的代码中,我们也给 index
操作增加了一个方法级别的@adminMenu
注解,它的格式也是一个变形 php 数组,语法和 php 数组完全一样,数组里的属性就是这个后台菜单的属性,
/**
* 演示插件
* @adminMenu(
* 'name' => '演示插件',
* 'parent' => 'admin/Plugin/default',//菜单父级,格式有三种:应用名/控制器/操作,控制器/操作,操作
* 'display'=> true,
* 'hasView'=> true,
* 'order' => 10000,
* 'icon' => '',
* 'remark' => '演示插件',
* 'param' => ''
* )
*/