2017-08-22 106 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想要一个数组,其余的如下。