加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Zend Framework 2与zfc-rbac数据库数据库

发布时间:2020-12-13 16:28:51 所属栏目:PHP教程 来源:网络整理
导读:Zfc-user和zfc-rbac( https://github.com/ZF-Commons)的github页面很清楚,实现确实很简单(“如许多教程所述).我还发现了zfc-user和zfc-rbac(/ vendor / zf-commons / zfc- [user / rbac] / data /)都需要的SQL方案. 用户进入数据库很容易,因为zfc-user已经为
Zfc-user和zfc-rbac( https://github.com/ZF-Commons)的github页面很清楚,实现确实很简单(“如许多教程所述).我还发现了zfc-user和zfc-rbac(/ vendor / zf-commons / zfc- [user / rbac] / data /)都需要的SQL方案.

用户进入数据库很容易,因为zfc-user已经为你设置了这个(http://example.com/user).一切都到目前为止.现在我想填充这些角色,但是我不清楚如何正确填写rbac表.缺乏关于这一点的信息让我感到惊讶,因为zfc-rbac组件是Zend Framework的一个受欢迎的模块.

我了解基于角色的访问控制的主体以及许可权和表的链接权限和表链接在一起的表格的清楚,这是角色表不清楚我.我明白你可以有一个具有父角色的角色,但是不清楚如何用父角色填充表,因为有一个外键约束,它表示’parent_role_id’必须是’role_id’.

以下是角色表的SQL(这是zfc-rbac提供的SQL):

CREATE TABLE `rbac_role` (
  `role_id` int(11) unsigned NOT NULL AUTO_INCREMENT,`parent_role_id` int(11) unsigned NOT NULL,`role_name` varchar(32) NULL,PRIMARY KEY (`role_id`),KEY `parent_role_id` (`parent_role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ALTER TABLE `rbac_role`
  ADD CONSTRAINT `rbac_role_ibfk_1` FOREIGN KEY (`parent_role_id`) REFERENCES `rbac_role` (`role_id`);

随着外键加入父母的角色似乎是不可能的?

INSERT INTO `rbac_role` (parent_role_id,role_name) VALUES (NULL,'admin');

基本上我的问题是(我觉得非常愚蠢的问这个),但是如何插入一个父角色呢?如果我提交的insert语句实际上是正确的,那么在插入父角色之前,是否总是需要删除外键?

将创建表更改为以下内容:
CREATE TABLE `rbac_role` (
    `role_id` int(11) unsigned NOT NULL AUTO_INCREMENT,`parent_role_id` int(11) unsigned NULL,KEY `parent_role_id` (`parent_role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

请注意,parent_role_id为NULL而不是NOT NULL.如果parent_role_id不为NULL,那意味着它必须有一个父级,但是由于外键引用是同一个表,所以无法插入父行!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读