Yii2 菜单menu管理

前面写了一篇Yii2-admin RBAC权限管理的实现 有朋友在评论里问了关于menu的使用,在这里我做一下统一的回答,稍微讲解一下我平时在项目中是怎么使用menu的。

menu表是根据权限来控制后台菜单的显示和隐藏的。

先来看看表结构:

-- ---------------------------- 
-- Table structure for yc_menu 
-- ---------------------------- 
DROP TABLE IF EXISTS `yc_menu`; 
CREATE TABLE `yc_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`), 
  KEY `name` (`name`), 
  KEY `route` (`route`(255)), 
  KEY `order` (`order`), 
  CONSTRAINT `dh_menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `dh_menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='系统管理员菜单权限表';

这里详细介绍几个主要的字段:

name 是菜单的名称;

parent 是父类菜单的名称,留空则表示顶级菜单;

route 指的是菜单的URL;

在数据库里的表现:

Yii2 菜单menu管理_第1张图片

在页面上的表现:

Yii2 菜单menu管理_第2张图片

使用方式:


这里使用到啦yii2-admin下的MenuHelper类getAssignedMenu方法,该方法用于获取用户对应的菜单信息.

  在config\params.php下配置

return [
    'adminEmail' => '[email protected]',
    'mdm.admin.configs' => [
        'db' => 'db',
        'menuTable' => '{{%yc_menu}}',
        'cache' => null,
        'cacheDuration' => 3600
    ],
];
最终显示结果:

Yii2 菜单menu管理_第3张图片

你可能感兴趣的:(PHP,Yii2)