Search code examples
laravellaravel-5laravel-routinglaravel-middlewarelaravel-resource

Laravel Apply middlware on specific route of resource route controller


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');

Solution

  • 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');
    }