码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-12-01 10:58:00      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

  随着应用逻辑越来越复杂,要处理的权限越来越多,将所有权限定义在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

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

 

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

标签:

原文地址:http://www.cnblogs.com/Caoxt/p/5009418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!