在laravel 5.5中,我创建了政策
public function view()
{
return true;
}
并在AuthServiceProvider
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
Post::class => PostPolicy::class,
];
在控制器中我使用这样的策略:
$this->authorize('view');
我得到错误This action is unauthorized
函数view()
是返回true还是false。
答案 0 :(得分:1)
您的政策已在邮政模型中注册。
我假设你的view()
方法在PostPolicy类中。看起来好像你想在没有模型实例的情况下使用它。
如果策略代码不需要模型实例,请使用$this->authorize('view', Post:class);
。
您的查看方法还应该接收用户模型。
public function view(User $user) { ... };
否则,您想为谁检查权限。