Laravel 5.1 ACL权限控制 二 之策略类

本文介绍了如何在 Laravel 中使用策略类来优化权限管理。通过生成策略类、配置 AuthServiceProvider 和实现更新操作权限检查,实现了资源基权限的高效管理。

  随着应用逻辑越来越复杂,要处理的权限越来越多,将所有权限定义在AuthServiceProvider显然不是一个明智的做法,因此Laravel引入了策略类,策略类是一些原生的PHP类,和控制器基于资源对路由进行分组类似,策略类基于资源对权限进行分组管理。

1、生成策略类

php artisan make:policy PostPolicy

2、在AuthServiceProvider的policies属性中注册策略类:

'App\Post' => 'App\Policies\PostPolicy',

3、在app/Policies/PostPolicy.php添加策略

    public function update(User $user, Post $post){
        return $user->owns($post);
    }

 ----------------------------------以下为使用方法 -------------------------

4、修改AuthServiceProvider中的boot方法为

    public function boot(GateContract $gate)
    {
        $this->registerPolicies($gate);
    }

5、PostController.php中的show方法和上篇文章中的相同,不作改变

6、修改show.blade.php视图中的接收参数

标题:{{ $post->title }}
<br>
内容:{{ $post->body }}
@can('update', $post)
<a href="#">编辑文章</a>
@endcan

 实现的效果和上篇中的是否具有 "编辑文章" 的结果是一样的

 

转载于:https://www.cnblogs.com/Caoxt/p/5009418.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值