Laravel 来自模型的授权
我有一个带有方法的Laravel 来自模型的授权,laravel,laravel-5,Laravel,Laravel 5,我有一个带有方法的Board.php模型checkViewAccess() i、 e 它执行一些检查,在最后一次检查时,它需要调用一个策略方法来确定用户的授权 在刀片中,@can('view',$board)起作用 在控制器中,$this->authorize('view',$board)起作用 但在我的一生中,我无法找到任何方法从板模型调用策略授权 我所尝试的: Gate::check('view',$this)//非静态方法,很好,没想到它会工作 auth()->user()->can
Board.php
模型checkViewAccess()
i、 e
它执行一些检查,在最后一次检查时,它需要调用一个策略方法来确定用户的授权
- 在刀片中,
起作用@can('view',$board)
- 在控制器中,
起作用$this->authorize('view',$board)
板
模型调用策略授权
我所尝试的:
//非静态方法,很好,没想到它会工作Gate::check('view',$this)
//这甚至不会影响策略并返回false,无论我从策略返回什么。即使我只是在auth()->user()->can('view',$this)
policy方法中返回true,它也是false。Laravel文档声称用户对象上可以使用before()
方法can()
$user->can('view',$this)代码>//认为这是auth facade的问题,我直接从数据库中获取了用户,但仍然没有达到策略要求
那么我如何才能做到这一点呢?如何从模型访问laravels授权?原来是
Laratrust
包在trait中使用了can()
方法,因此我无法将自己的可授权trait添加到我的用户模型中
修正:
原来是
Laratrust
包在trait中使用了can()
方法,因此我无法将自己的可授权trait添加到我的用户模型中
修正:
你需要问自己的一个问题是“为什么我需要这个在模型中?”然后是“我可以把它放在更好的地方吗?”你需要问自己的一个问题是“为什么我需要这个在模型中?”然后是“我可以把它放在更好的地方吗?”如果你已经解决了你的问题,你可能想要接受你自己的答案;)如果你已经解决了你的问题,你可能想接受你自己的答案;)我得等几天才能让我
@if($board->checkViewAccess())
render board
@endif
use LaratrustUserTrait;
use Authorizable {
LaratrustUserTrait::can insteadof Authorizable;
Authorizable::can as authorize;
}