Laravel Apply middlware on specific route of resource route controller

1.4k views Asked by At

I want to apply middleware on create route of resource controller but confused how to set middleware. Normally we can add middleware like this

Route::get('api/users/{user}', function (App\Models\User $user) {
    return $user->email;
})->middleware('name');

but when we have a resource controller so how could I apply middleware on single route of resource controller.

Route::resource('front-pages','Admin\FrontPagesController');
3

There are 3 answers

2
Kamlesh Paul On BEST ANSWER

create a __construct() function

in FrontPagesController.php

public function __construct()
{
    $this->middleware('auth', ['except' => ['index','show']]);
}

ref link https://laravel.com/docs/8.x/controllers#controller-middleware


all the possible functions

/**
 * Instantiate a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth');

    $this->middleware('log')->only('index');

    $this->middleware('subscribed')->except('store');
}
0
Muhammad Tariq On

You can use

 Route::resource('front-pages','Admin\FrontPagesController')->only('fornt-page.whatever name');

And you can group it with middleware

0
Yziaf_07 On
Route::middleware('name')->resource('front-pages' , 'Admin\FrontPagesController');

refer laravel documentation :https://laravel.com/docs/8.x/middleware#introduction