LorenzoBerti
LorenzoBerti

Reputation: 6974

Use multiple parameters for route middleware in Laravel 6.0

In my Laravel 6.0 app, I need to use a route with two parameters.

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

I tried also with:

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

In my Policy I have:

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

However, it doesn't work, and the policy is never called. How can I pass two parameters in my route middleware?

Upvotes: 1

Views: 255

Answers (1)

LorenzoBerti
LorenzoBerti

Reputation: 6974

I found my error.

Seems that I should use this sintax:

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

Without parentheses.

Upvotes: 3

Related Questions