限时 5折! 详情
按照教程添加左侧菜单时无法添加父级菜单
7 288 2016-06-30

看了一下建表语句

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

发现parent字段是int 类型,添加不了,请问如何解决?

  • 7 个回答
  • 为什么parent_id是int你添加不了?是int是没问题的,详细描述下你的问题。

  • yii2搭建完美后台并实现rbac权限控制实例教程 yii2权限控制rbac之详细操作步骤按照上面系列文章来做的,有两个疑问:

    1. menu菜单这一块,我有一个一级菜单:用户管理;然后我想在它下面创建一个子菜单:普通用户,于是把它的Parent Name设为用户管理,虽然添加时没报错了,但是在数据库中没有加进去,值为null,应该不会是路由的问题把?
    2. 我定义一个角色只有查看和修改用户的权限,然后把这个角色赋值给当前用户了。 可是在当前用户在操作时仍然对用户具有增删查改的权限, 当然,对菜单,路由....是没有权限的,as_access是这样设置的.
     "as access" => [ 
        //ACF肯定是要加的
        "class" => "mdmadmincomponentsAccessControl", 
        "allowActions" => [ 
            //这里是允许访问的action 
            //"admin/role/index", 
        ] 
     ],

    希望解答,谢谢!

  • 第一个问题,给当前菜单添加父类名称的时候,你可以输出“用户”就这俩字,然后会出来一个搜索框让你选择让“用户”什么,比如说你选择的是用户管理,实际上数据库的menu表的parent记录的是菜单的id,而不是菜单的名称。第二个问题,只能你自己看看当前用户是否拥有添加之类的权限了,你可以看看 yii2权限控制rbac之详细操作步骤

  • 已经解决了,第一个问题按博主的办法解决的.第二个多试两次就好了.后台用户管理还是不太完善 查了一下,默认模板在vendor/mdmsoft/yii2-admin/views/user 下面, 我现在如果想修改模板和增加一些其他方法,比如说添加用户,修改密码.....是直接在这下面修改还是在backend 下面操作,具体目录该如何组织呢?望解答!~

  • 用户列表就没必要使用/admin/user系列的操作了。你可以gii新建操作用于展示用户列表以及对用户的一些列操作,均不受影响添加用户你可以参考自带的/site/signup方法希望能帮助到你!

  • 恩, 照做了. 但是为什么我明明没有给操作者/admin/user系列的权限, 在浏览器中仍然可以直接访问到?

    1. 检查下 as access
    2. 检查下是否给了 * 这个权限
    3. 都没问题就要检查下自己权限系统是否搭建好了,最后如果都没有问题,我建议你看看rbac详细的操作步骤

登录 去赚佣金