介绍
这篇文章给大家介绍怎么在thinkPHP5中使用Rabc实现权限管理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>一:gmars/tp5-rbac安装强>
<代码>作曲家需要gmars/tp5-rbac 代码>
<强>二:gmars/tp5-rbac使用强>
1: Rbac数据库创建
在<代码> gmars/tp5-rbac> 代码中我们需要使用到六张表,分别为:权限节点表(许可),permission_category(权限分组表),角色(角色表),<代码> role_permission> 代码(角色权限关联表),用户(用户表),user_role(用户角色关联表)
当我们使用作曲家将<代码> gmars/tp5-rbac> 代码下载下来之后,我们可以发现在<代码> vendorgmarstp5-rbac 代码>目录下有一个<代码> gmars_rbac。sql代码>文件,此文件内就为我们所需要创建表的sql
下面sql中# # #为你的表前缀,下面只是展示我们呢所需要的表的sql,创建表<代码> gmars/tp5-rbac> 代码提供了方法来帮我们自动创建我们所需要的表
//实例化rbac $ rbac =, new Rbac ();//初始化rbac所需的表,可传入参数$ db为数据库配置项默认为空则为默认数据库(考虑到多库的情形) rbac→美元不知道();
上面的方法会生成rbac所需要的表,一般只执行一次,为了安全,执行后会加锁,下次要执行需要删除锁文件再执行
(1):权限节点表(许可)
DROP TABLE IF EXISTS “# # #许可”; CREATE TABLE “# # #许可”,( ,“id”int (11), unsigned NOT NULL AUTO_INCREMENT, ,“名字”varchar (50), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;权限节点名称& # 39;, ,“类型”短整型(4),unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;权限类型1 api权限2前路由权限& # 39;, category_id添加的大敌;int (11), unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;权限分组id,, ,“路径”varchar (100), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;权限路径& # 39;, ,‘path_id varchar (100), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;路径唯一编码& # 39;, ,“描述”varchar (200), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;描述信息& # 39;, ,“地位”短整型(4),unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;状态0未启用1正常& # 39;, ,‘create_time int (10), unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;创建时间& # 39;, ,PRIMARY KEY (id), ,KEY “idx_permission”, (“path_id”,“状态”) ),引擎=InnoDB DEFAULT CHARSET=utf8mb4 评论=& # 39;权限节点表& # 39;;
(2): permission_category(权限分组表
SET FOREIGN_KEY_CHECKS=0; DROP TABLE  IF EXISTS “# # # permission_category”; CREATE TABLE “# # # permission_category”, ( ,“id”int (11), unsigned NOT NULL AUTO_INCREMENT, ,“名字”varchar (50), COLLATE utf8mb4_general_ci NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;权限分组名称& # 39;, ,“描述”varchar (200), COLLATE utf8mb4_general_ci NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;权限分组描述& # 39;, ,“地位”短整型(4),unsigned NOT NULL DEFAULT & # 39; 1 & # 39;, COMMENT & # 39;权限分组状态1有效2无效& # 39;, ,‘create_time int (10), unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;权限分组创建时间& # 39;, ,PRIMARY KEY (id) ),引擎=InnoDB DEFAULT CHARSET=utf8mb4 整理=utf8mb4_general_ci COMMENT & # 39;权限分组表& # 39;;
(3):角色(角色表)
DROP TABLE IF EXISTS “# # #的作用”; CREATE TABLE “# # #的角色”,( ,“id”int (11), unsigned NOT NULL AUTO_INCREMENT, ,“名字”varchar (50), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;角色名& # 39;, ,“描述”varchar (200), NOT NULL DEFAULT & # 39; & # 39;, COMMENT & # 39;角色描述& # 39;, ,“地位”短整型(4),unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;状态1正常0未启用& # 39;, ,‘sort_num int (11), unsigned NOT NULL DEFAULT & # 39; 0 & # 39;, COMMENT & # 39;排序值& # 39;, ,PRIMARY KEY (id), ,KEY “idx_role”,(状态) ),引擎=InnoDB DEFAULT CHARSET=utf8mb4 评论=& # 39;角色表& # 39;;怎么在thinkPHP5中使用Rabc实现权限管理