zoukankan      html  css  js  c++  java
  • Laravel 5.1 ACL权限控制 二 之策略类

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

    1、生成策略类

    php artisan make:policy PostPolicy
    

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

    'AppPost' => 'AppPoliciesPostPolicy',
    

    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
    

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

  • 相关阅读:
    C#中静态变量 静态类 静态成员
    C#类型转换
    ASP.NET页面跳转及传值方式
    ADO.NET
    C#方法的参数类型
    Oracle %TYPE 和 %ROWTYPE
    静态页面与动态页面
    相对路径和绝对路径
    45 个非常有用的 Oracle 查询语句(转)
    ASP.NET MVC 之表格分页
  • 原文地址:https://www.cnblogs.com/Caoxt/p/5009418.html
Copyright © 2011-2022 走看看