Laravel registerPolicies总是得到"这个动作是未经授权的。"

时间:2017-10-08 13:19:27

标签: laravel-5

在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。

1 个答案:

答案 0 :(得分:1)

您的政策已在邮政模型中注册。

我假设你的view()方法在PostPolicy类中。看起来好像你想在没有模型实例的情况下使用它。

如果策略代码不需要模型实例,请使用$this->authorize('view', Post:class);

您的查看方法还应该接收用户模型。

public function view(User $user) { ... };

否则,您想为谁检查权限。