PHPackages                             jackchow/rbac - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. jackchow/rbac

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

jackchow/rbac
=============

A Thinkphp5 RBAC Feature

v1.4(7y ago)821.7k16[3 issues](https://github.com/jackchow123456/jackchow-rbac/issues)[1 PRs](https://github.com/jackchow123456/jackchow-rbac/pulls)1MITPHPPHP &gt;=5.5.0

Since Jun 6Pushed 7y ago4 watchersCompare

[ Source](https://github.com/jackchow123456/jackchow-rbac)[ Packagist](https://packagist.org/packages/jackchow/rbac)[ RSS](/packages/jackchow-rbac/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (1)Versions (6)Used By (1)

Rbac (ThinkPHP 5 Package)
=========================

[](#rbac-thinkphp-5-package)

Rbac是向ThinkPHP 5添加基于角色的权限的简洁而灵活的方式。

Contents
--------

[](#contents)

- [安装](#%E5%AE%89%E8%A3%85)
- [配置](#%E9%85%8D%E7%BD%AE)

    - [用户与角色的关系](#%E7%94%A8%E6%88%B7%E4%B8%8E%E8%A7%92%E8%89%B2%E7%9A%84%E5%85%B3%E7%B3%BB)
    - [模型](#%E6%A8%A1%E5%9E%8B)
        - [Role](#role)
        - [Permission](#permission)
        - [Admin](#admin)
- [使用](#%E4%BD%BF%E7%94%A8)

    - [概念](#%E6%A6%82%E5%BF%B5)
        - [检查用户是否拥有权限](#%E6%A3%80%E6%9F%A5%E7%94%A8%E6%88%B7%E6%98%AF%E5%90%A6%E6%8B%A5%E6%9C%89%E6%9D%83%E9%99%90)
- [故障排除](#%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4)
- [License](#license)
- [Contribution guidelines](#contribution-guidelines)

安装
--

[](#安装)

运行 `composer require jackchow/rbac`

项目用到TP的migrate扩展包。（Tip：命令运行失败请检查该包是否安装）[点击了解](https://www.kancloud.cn/manual/thinkphp5_1/354133)

配置
--

[](#配置)

您还可以发布此包的配置以进一步自定义表名称和模型名称空间。 在application/command.php文件中添加下面代码（生成命令）:

```
return [
    'Jackchow\Rbac\Command\PublishCommand',
    'Jackchow\Rbac\Command\MigrateCommand',
];
```

然后使用`php think rbac:publish` 生成配置文件`rbac.php` 在config目录下。

在 `config/rbac.php` 文件中设置属性值. 委托使用这些值来引用正确的用户表和模型.

### 用户与角色的关系

[](#用户与角色的关系)

刚刚在上面注册了Rbac的生成命令后，现在就可以使用命令生成Rbac的迁移文件:

```
php think rbac:migrate
```

它将生成`_rbac.php` 迁移文件 和 `RbacSeeder.php`数据填充文件.

生成迁移文件位置在：\\database\\migrations 中

现在您可以根据自己的需求修改迁移文件

如果你修改了迁移文件中某些表的字段 记得也要在seed文件中修改对应的数值，不然seed填充可能会出现无法预测的错误。

然后您现在可以使用think migrate 和 think seed 命令运行它：

```
php think migrate:run
php think seed:run
```

迁移后，将出现五个新表格:

- `admins` — 保存用户表记录
- `roles` — 保存角色表记录
- `permissions` — 保存权限表记录
- `role_user` — 保存用户和角色之间的 [多对多](https://www.kancloud.cn/manual/thinkphp5_1/354060) 关系
- `permission_role` — 保存权限和角色之间的 [多对多](https://www.kancloud.cn/manual/thinkphp5_1/354060) 关系

如果系统已经存在admins表 可以在生成的迁移文件注释相应的迁移代码。

小提示一下：如果你已经执行了迁移命令，又想修改迁移文件。可以使用命令`think migrate:rollback`回滚一下

如果你还没有创建admin模块 可以使用命令`php think build --module admin`生成

hhh,相信你已经懂了.

### 模型

[](#模型)

#### Role

[](#role)

使用以下示例在`application\admin\model\Roles.php`内创建角色模型：

```
