2017-08-22 138 views
0

通常,使用策略時,只有參數user和相應的模型。不過,它似乎沒有工作來自定義參數。策略的自定義授權參數

我想什麼:

// MyModelPolicy.php 
class MyModelPolicy 
{ 
    public function foo(User $user, MyModel $model, $someString) { /* ... */ } 
} 

然後在刀片:

// some.blade.php 
@can('foo', $myModelInstance, 'tralala') 

不過,我得到的是foo期望的是三個參數,並且只獲得兩個錯誤。 Laravel Gate只提供兩個並忽略'tralala'

什麼是最簡單的方法來實現我的願望?

回答

0

好了,原來,這是比...文檔沒有給出這個簡單的例子想法更容易,但你需要做的是,以不同的方式使用@can

// some.blade.php 
@can('foo', [$myModelInstance, 'tralala']) 

那麼,如果你查看API參考,你會看到can想要一個數組,其餘的如下。