如何使用ThinkPHP6实现用户角色权限管理

随着业务的不断发展,很多中小型公司都拥有了自己的用户维护系统,用户权限管理是其中重要的一环。为了保护系统中的敏感信息、保障业务的正常运行,我们需要使用角色权限管理机制,保证不同角色的用户只能访问指定的资源和数据。

本文将以ThinkPHP6框架为例,介绍如何使用其提供的权限控制中间件和扩展扩展包实现用户角色权限管理。

  • 创建角色表和权限表
  • 首先我们需要定义两个数据库表,一个是角色表,用来存储系统角色信息;另一个是权限表,用来存储系统权限信息。

    CREATE TABLE role ( id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', name varchar(20) NOT NULL COMMENT '角色名称', description varchar(50) NOT NULL COMMENT '角色描述', PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

    CREATE TABLE permission ( id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', name varchar(20) NOT NULL COMMENT '权限名称', description varchar(50) NOT NULL COMMENT '权限描述', PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限表';

    我们可以使用ThinkPHP提供的数据库迁移工具来创建表:php think migrate:run。

  • 创建角色和权限模型
  • 接下来,我们需要创建角色和权限的模型。在app/model目录下创建Role.php和Permission.php文件,代码如下: