搭建 rabc 后台系列教程(四)—— 创建左侧导航栏菜单 [ 2.0 版本 ]
作者:鲁鲁槟 出处:http://www.luluqi.cn/post/default/show-post?id=127
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
1、创建 menu 表
CREATE TABLE `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`parent` int(11) DEFAULT NULL,
`route` varchar(256) DEFAULT NULL,
`order` int(11) DEFAULT NULL,
`data` text,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2、在 left.php 的/ul后面添加以下内容
<?php
use mdm\admin\components\MenuHelper;
$callback = function($menu){
$data = json_decode($menu['data'], true);
$items = $menu['children'];
$return = ['label' => $menu['name'],'url' => [$menu['route']]];
//处理我们的配置
if ($data) {
isset($data['visible']) && $return['visible'] = $data['visible'];//visible
isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon'];//icon
//other attribute e.g. class...
$return['options'] = $data;
}
//没配置图标的显示默认图标
(!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o';
$items && $return['items'] = $items;
return $return;
};
//这里我们对一开始写的菜单menu进行了优化
echo dmstr\widgets\Menu::widget( [
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id,null, $callback),
] );
?>
3、点击“菜单”,然后点击 创建按钮进行创建菜单
4、点击“路由”,将以下几个路由写到 auth_item 表(为了分配路由给菜单)
点击“权限”,再点击查看“权限控制”,分配 /admin/menu/*
5、点击“菜单”,创建以下子菜单
6、刷新页面,预览效果:你会发现,多了一个菜单(O(∩_∩)O哈哈~),请删除 left.php 中多余的 ul、/ul
注:如有疑问或者有更好的方法,请加入QQ群453300767 进行讨论或在下方进行评论。
鲁鲁槟 东莞
注册时间:2015-12-02
最后登录:2024-08-09
在线时长:124小时36分
最后登录:2024-08-09
在线时长:124小时36分
- 粉丝110
- 金钱5620
- 威望140
- 积分8260
共 4 条评论
顶一下。。。
怎么找不到 use mdm\admin\components\MenuHelper 这个命名空间下的类
https://www.lulublog.cn/post/127
怎么父级菜单名称一直添加不上去啊? 一直是未设置