PHPackages                             cloty/cloty-entrust - 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. cloty/cloty-entrust

ActiveLibrary

cloty/cloty-entrust
===================

Roles &amp; Permissions for Laravel 5

v1.5.5(7y ago)36181MITPHPPHP &gt;=5.5.9

Since Jul 18Pushed 7y ago1 watchersCompare

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

READMEChangelogDependencies (8)Versions (13)Used By (0)

Entrust (Laravel 5 Package)
===========================

[](#entrust-laravel-5-package)

cloty-entrust 是一个基于laravel5的简单验证角色权限的插件

内容
--

[](#内容)

- [Entrust (Laravel 5 Package)](#entrust-laravel-5-package)
    - [内容](#%E5%86%85%E5%AE%B9)
    - [安装](#%E5%AE%89%E8%A3%85)
    - [配置](#%E9%85%8D%E7%BD%AE)
        - [](#)
        - [表结构说明](#%E8%A1%A8%E7%BB%93%E6%9E%84%E8%AF%B4%E6%98%8E)
        - [Entrust Models](#entrust-models)
            - [EntrustRole](#entrustrole)
            - [EntrustPermission](#entrustpermission)
            - [EntrustPermissionRole](#entrustpermissionrole)
            - [User](#user)
    - [使用](#%E4%BD%BF%E7%94%A8)
        - [例子](#%E4%BE%8B%E5%AD%90)
            - [验证Roles&amp;Permissions](#%E9%AA%8C%E8%AF%81rolespermissions)
            - [User ability &amp; Entrust ability](#user-ability--entrust-ability)
        - [Blade](#blade)
        - [Middleware](#middleware)

安装
--

[](#安装)

1. 安装entrust的方式很简单，直接添加到laravel5的composer.json安装即可。或者通过命令 `composer update` 安装:

```
"cloty/cloty-entrust": "~1.5.5"
```

2. 在 `config/app.php`中的 `providers` 引入服务提供者:

```
Cloty\Entrust\Providers\EntrustServiceProvider::class,
```

3. 同样的在 `config/app.php` 中的 `aliases ` 引入:

```
'Entrust'   => Cloty\Entrust\Facades\EntrustFacade::class,
```

4. 运行下面的命令，发布包配置文件 `config/cloty-entrust.php` 和 `migrations`:

```
php artisan vendor:publish
```

5. 如果你需要引入中间件 [Middleware](#middleware) (Laravel 5.\*) 时，须在 `app\Http\Kernel.php` 中添加以下内容:

```
    'entrust.role' => \Cloty\Entrust\Middleware\EntrustRole::class,
    'entrust.permission' => \Cloty\Entrust\Middleware\EntrustPermission::class,
    'entrust.ability' => \Cloty\Entrust\Middleware\EntrustAbility::class,
```

配置
--

[](#配置)

可以通过编辑文件 `config/entrust.php` 变更对应的表名或者模型

```
    'cache_driver' => 'redis', // 建议配置为`redis`，由于使用Tag缓存角色关系,`file`是不支持的
    'cfc' => 1 // 默认值1，中间件验证失败时返回abort(403);
```

`cfc` 可选参数`1`|`2`，为2时,错误返回`back()->with('error', '权限不被允许')`。 请求方式为`ajax`时，验证不通过统一返回`response()->json(['status' => 0, 'msg' => '权限不被允许'])`。

配置完后可以使用artisan迁移命令来运行它:

```
php artisan migrate
```

### 表结构说明

[](#表结构说明)

迁移之后，将出现四个新表:

- `entrust_roles` — 角色表
- `entrust_permissions` — 权限表
- `entrust_role_users` — [many-to-many](https://laravel.com/docs/5.4/eloquent-relationships#many-to-many-polymorphic-relations) 角色与用户之间的关系
- `entrust_permission_roles` — [many-to-many](https://laravel.com/docs/5.4/eloquent-relationships#many-to-many-polymorphic-relations) 角色和权限之间的关系

### Entrust Models

[](#entrust-models)

#### EntrustRole

[](#entrustrole)

```
    use Cloty\Entrust\EntrustRole;
```

#### EntrustPermission

[](#entrustpermission)

```
    use Cloty\Entrust\EntrustPermission;
```

#### EntrustPermissionRole

[](#entrustpermissionrole)

```
    use Cloty\Entrust\EntrustPermissionRole;
```

#### User

[](#user)

需要在你的 `User`模型引入 `EntrustUserTrait` trait。比如:

```
