场景:当前用户创建的订单,只能当前用户自己看,可以通过授权策略类(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';
});
}
}

  

最新文章

  1. datawindow 创建操作报表。
  2. 活动与服务onbind()
  3. js 实现获取对象所有键名(key)的方法
  4. html和css中的技巧
  5. 【BZOJ 2440】[中山市选2011]完全平方数
  6. Android:布局实例之常见用户设置界面
  7. jstack(Stack Trace for Java)
  8. [置顶] Guava学习之Multimap
  9. java.io.NotSerializableException
  10. MVC过滤器简单理解
  11. [ZJOI2007]报表统计
  12. 凸函数与Jensen不等式
  13. BootstrapTable-加载数据
  14. 生成ISO文件
  15. 跟我一步一步写出MongoDB Web 可视化工具(一)
  16. 《深入浅出nodejs》读书笔记(2)
  17. 【原创】驱动卸载之ControlService函数
  18. 前端模块化,AMD与CMD的区别
  19. Java并发编程:Java Thread 的 run() 与 start() 的区别
  20. Transaction Check Error:file /usr/libexec/getconf/default conflicts between attempted installs of gcc-6.4.1-1.fc25.i686 and gcc-6.4.1-1.fc25.x86_64

热门文章

  1. node 打包内存溢出 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
  2. 一个3D正方体
  3. 通过JS完成电梯动画效果
  4. Confluence 6 分享一个文件
  5. python3精品解析运算符
  6. 使用vlc 或 ffmpeg发布RTP/UDP视频服务
  7. How to correctly set application badge value in iOS 8?
  8. Okhttp源码分析--基本使用流程分析
  9. jmeter也能做Webservice接口测试
  10. For 循环 kotlin(10)