2016-12-12 107 views
0

我有一个发布模型和PublicationPolicy策略。在我的控制,我使用的是以下几点:Laravel的授权策略5.3

$this->authorize('update', $pub); 

在政策我有以下几点:

public function update(User $user, Publication $publication) 
{ 
    dd($user); 
} 

而是与用户输出的死亡,我得到一个错误信息,说“这个行动未经授权“。

我已经注册在AuthServiceProvider政策,像这样:

protected $policies = [ 
    'App\Model' => 'App\Policies\ModelPolicy', 
    Publication::class => PublicationPolicy::class, 
]; 

提及的另一点是,政策的功能似乎工作得很好。这是个人对不起作用的能力的要求。

帮助?

回答

0

好吧,我扑头靠在墙上几次后,这一切都变得清晰起来:

我总是从过滤法(“之前”)返回一个值。原来,只有当你想允许(true)或拒绝(false)时,你才需要返回一个值。如果你想让策略检查符合特定的能力,你不需要返回一个值(或者返回NULL)。

D'oh!

+0

这看起来像我的情况。也许你可以帮助我。看看这个:http://stackoverflow.com/questions/42598826/how-can-i-do-authorization-policies-in-laravel-5-3 –