在Laravel 6.0中为路由中间件使用多个参数

时间:2019-09-09 14:49:08

标签: laravel laravel-6

在Laravel 6.0应用中,我需要使用带有两个参数的路由。

Route::get('view/{MyFirstModel}/{MySecondModel}', 'Mycontroller@view')
    ->middleware(['can:view,MyFirstModel,MySecondModel']);

我也尝试过:

Route::get('view/{MyFirstModel}/{MySecondModel}', 'Mycontroller@view')
    ->middleware(['can:view,MyFirstModel|MySecondModel']);

在我的政策中,我有:

public function view(User $user, MyFirstModel $first, MySecondModel $second) {
    var_dump("I enter");
}

但是,它不起作用,并且永远不会调用该策略。如何在路由中间件中传递两个参数?

1 个答案:

答案 0 :(得分:3)

我发现了我的错误。

似乎我应该使用这种罪过:

Route::get('view/{MyFirstModel}/{MySecondModel}', 'Mycontroller@view')->middleware('can:view,MyFirstModel,MySecondModel')

没有括号。