2016-12-12 105 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 –