user1032531 user1032531 - 9 days ago 11
PHP Question

Adding multiple middleware to Laravel route

Per https://laravel.com/docs/5.3/routing#route-groups, I can add the

auth
middleware as follows:

Route::group(['middleware' => 'auth'], function () {
Route::get('/', function () {
// Uses Auth Middleware
});

Route::get('user/profile', function () {
// Uses Auth Middleware
});
});


I've also seen middleware added as follows:

Route::group(['middleware' => ['web']], function() {
// Uses all Middleware $middlewareGroups['web'] located in /app/Http/kernel.php?
Route::resource('blog','BlogController'); //Make a CRUD controller
});


How can I do both?

PS. Any comments providing insight on what the bottom four lines of code are doing would be appreciated

Answer

To assign middleware to a route you can use either single middleware (first code snippet) or middleware groups (second code snippet). With middleware groups you are assigning multiple middleware to a route at once. You can find more details about middleware groups here: https://laravel.com/docs/5.3/middleware#middleware-groups

To use both (single middleware & middleware group) you can try this:

Route::group(['middleware' => ['auth', 'web']], function() {
  // uses 'auth' middleware plus all middleware from $middlewareGroups['web']
  Route::resource('blog','BlogController'); //Make a CRUD controller
});
Comments