策略的自定义授权参数

时间:2017-08-22 08:01:58

标签: php authorization laravel-5.4

通常,使用策略,您只有参数/<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

达到我想要的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

嗯,事实证明这比想象的要容易......文档没有给出一个简短的例子,但你要做的就是以一种截然不同的方式使用@can

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

好吧,如果您查找API参考,您会看到can想要一个数组,其余部分也是如此。

相关问题