通常,使用策略,您只有参数/<site>#Shell-home //Launchpad
/<site>#announcement-Display //Site which should not be secured
/<site>#announcement-Display&/create //THIS SHOULD BE SECURED BY A ROLE
和相应的模型。但是,附加自定义参数似乎不起作用。
我想要的是什么:
user
然后在Blade:
// MyModelPolicy.php
class MyModelPolicy
{
public function foo(User $user, MyModel $model, $someString) { /* ... */ }
}
但是,我得到的错误是// some.blade.php
@can('foo', $myModelInstance, 'tralala')
只需要三个参数,而且只有两个参数。 Laravel Gate只提供两个并忽略foo
。
达到我想要的最简单方法是什么?
答案 0 :(得分:0)
嗯,事实证明这比想象的要容易......文档没有给出一个简短的例子,但你要做的就是以一种截然不同的方式使用@can
:
// some.blade.php
@can('foo', [$myModelInstance, 'tralala'])
好吧,如果您查找API参考,您会看到can
想要一个数组,其余部分也是如此。