如何在thinkPHP3.2使用RBAC实现一个权限管理功能

  介绍

如何在thinkPHP3.2使用RBAC实现一个权限管理功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>一:表设计

在thinkPHP的RBAC的的Rbac.class。php文件中一共提供了4张表,还有一张用户表需要你自己去建

如下是我所建的和权限相关的sql

其中的wj_为表前缀,改成你项目中的表前缀

1:权限表:

CREATE  TABLE  IF  NOT  EXISTS “wj_access”, (   ,“role_id”短整型(6),UNSIGNED  NOT  NULL  COMMENT  & # 39;角色id # 39;,   ,“node_id”短整型(6),UNSIGNED  NOT  NULL  COMMENT  & # 39;节点id # 39;,   ,“水平”非常小的整数(1),NOT  NULL  COMMENT  & # 39;深度& # 39;,   ,“模块”VARCHAR (50), DEFAULT  NULL  COMMENT  & # 39;模块& # 39;,   ,KEY “groupId”, (“role_id”),   ,KEY “nodeId”, (“node_id”)   ),引擎=MYISAM  DEFAULT  CHARSET=utf8 评论=& # 39;权限表& # 39;;

2:节点表:

CREATE  TABLE  IF  NOT  EXISTS “wj_node”, (   ,“id”短整型(6),UNSIGNED  NOT  NULL  AUTO_INCREMENT  COMMENT  & # 39;节点id # 39;,   ,“名字”VARCHAR (20), NOT  NULL  COMMENT  & # 39;节点名称& # 39;,   ,“标题”VARCHAR (50), DEFAULT  NULL  COMMENT  & # 39;节点标题& # 39;,   ,“地位”非常小的整数(1),DEFAULT  & # 39; 0 & # 39;, COMMENT  & # 39;状态,0禁用,1启用& # 39;,   ,“备注”VARCHAR (255), DEFAULT  NULL  COMMENT  & # 39;描述& # 39;,   ,“排序”短整型(6),UNSIGNED  DEFAULT  NULL  COMMENT  & # 39;排序& # 39;,   ,“pid”短整型(6),UNSIGNED  NOT  NULL  COMMENT  & # 39;父级节点& # 39;,   ,“水平”非常小的整数(1),UNSIGNED  NOT  NULL  COMMENT  & # 39;深度& # 39;,   ,PRIMARY  KEY  (id),   ,KEY “水平”,(“水平”),   ,KEY “pid”, (“pid”),   ,KEY “地位”,(“状态”),   ,KEY “名字”,(“名字”)   ),引擎=MYISAM  DEFAULT  CHARSET=utf8 评论=& # 39;节点表& # 39;;

3:用户角色表:

CREATE  TABLE  IF  NOT  EXISTS “wj_role”, (   ,“id”短整型(6),UNSIGNED  NOT  NULL  AUTO_INCREMENT  COMMENT  & # 39;角色id # 39;,   ,“名字”VARCHAR (20), NOT  NULL  COMMENT  & # 39;角色名称& # 39;,   ,“pid”短整型(6),DEFAULT  NULL  & # 39;父级id # 39;,   ,“地位”非常小的整数(1),UNSIGNED  DEFAULT  NULL  COMMENT  & # 39;状态,0禁用,1启用& # 39;,   ,“备注”VARCHAR (255), DEFAULT  NULL  COMMENT  & # 39;备注& # 39;,   ,PRIMARY  KEY  (id),   ,KEY “pid”, (“pid”),   ,KEY “地位”,(状态)   ),引擎=MYISAM  DEFAULT  CHARSET=utf8 评论=& # 39;用户角色表& # 39;;

4:用户角色关联表:

CREATE  TABLE  IF  NOT  EXISTS “wj_role_user”, (   ,‘role_id MEDIUMINT (9), UNSIGNED  DEFAULT  NULL  COMMENT  & # 39;角色id # 39;,   user_id的大敌;CHAR (32), DEFAULT  NULL  COMMENT  & # 39;用户id # 39;,   ,KEY “group_id”, (“role_id”),   ,KEY “user_id”, (“user_id”)   ),引擎=MYISAM  DEFAULT  CHARSET=utf8 评论=& # 39;用户角色关联表& # 39;;

5:用户表:

CREATE  TABLE  IF  NOT  EXISTS “wj_user”, (   ,‘user_id INT (11), UNSIGNED  NOT  NULL  AUTO_INCREMENT  COMMENT  & # 39;用户id # 39;,   ,“用户名”VARCHAR (50), NOT  NULL  COMMENT  & # 39;用户名& # 39;,   ,“密码”VARCHAR (100), NOT  NULL  COMMENT  & # 39;密码& # 39;,   ,‘create_time INT (10), DEFAULT  NULL  COMMENT  & # 39;创建时间& # 39;,   ,‘update_time INT (10), DEFAULT  NULL  COMMENT  & # 39;更新时间& # 39;,   ,“地位”INT (1), DEFAULT  NULL  COMMENT  & # 39;状态,0禁用,1启用& # 39;,   ,PRIMARY  KEY  (“user_id”)   ),引擎=MYISAM  DEFAULT  CHARSET=utf8 评论=& # 39;用户表& # 39;;

<强>二:关于权限操作的常用配置:

你可以在配置。php文件的数组中增加:

如何在thinkPHP3.2使用RBAC实现一个权限管理功能