博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel策略(Policy)示例
阅读量:5018 次
发布时间:2019-06-12

本文共 1034 字,大约阅读时间需要 3 分钟。

场景:当前用户创建的订单,只能当前用户自己看,可以通过授权策略类(Policy)来实现

1.php artisan make:policy OrderPolicy

成功后,默认只有一个构造方法.因为涉及到用户 ,订单,所以要注入用户与订单.只有当二者关联ID相等时才算通过.

class OrderPolicy{    use HandlesAuthorization;    public function own(User $user, Order $order)    {        return $order->user_id == $user->id;    }}

  

2.在控制器中使用方法如下:

$this->authorize('own', $order);

3.由于5.8的版本可以配置自动加载,所以不需要再注册policy

porviders/AuthServiceProvide.php

class AuthServiceProvider extends ServiceProvider{    /**     * The policy mappings for the application.     *     * @var array     */    protected $policies = [        // 'App\Model' => 'App\Policies\ModelPolicy',    ];    /**     * Register any authentication / authorization services.     *     * @return void     */    public function boot()    {        $this->registerPolicies();        Gate::guessPolicyNamesUsing(function($class){            return '\\App\\Policies\\'.class_basename($class).'Policy';        });    }}

  

posted on
2019-05-19 10:27 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/bing2017/p/10888354.html

你可能感兴趣的文章
[转]MyEclipse 里查看jar文件源码
查看>>
thrift学习笔记
查看>>
expect中send特殊字符
查看>>
短信验证码实现流程
查看>>
C语言中内存对齐
查看>>
JavaScript Big-Int
查看>>
2015软件工程(大一下)职业规划第3次作业
查看>>
最好用的20个数据可视化工具(二)
查看>>
通过Application传递数据
查看>>
final关键字总结
查看>>
truncate与delete的区别
查看>>
2017年天梯赛LV2题目汇总小结
查看>>
spring mvc的拦截器
查看>>
字符串、文件操作和英文词频统计预处理
查看>>
Linux学习期中总结
查看>>
Spring Cloud 微服务笔记(六)Spring Cloud Hystrix
查看>>
linux 文本过滤-grep
查看>>
面向对象基础——构造方法私有化、对象数组、内部类
查看>>
java学习笔记1
查看>>
Oracle数组一般可以分为固定数组和可变数组
查看>>