Laravel adding middleware inside a controller function

Middleware could also be applied to just one function, just add the method name in your controller constructor

public function __construct()
{
    // Middleware only applied to these methods
    $this->middleware('loggedIn', [
        'only' => [
            'update' // Could add bunch of more methods too
        ]
    ]);
}

OR

public function __construct()
{
    // Middleware only applied to these methods
    $this->middleware('loggedIn')->only([
        'update' // Could add bunch of more methods too
    ]);
}

Here's the documentation


There are 3 ways to use a middleware inside a controller:

1) Protect all functions:

public function __construct()
{
    $this->middleware('auth');
}

2) Protect only some functions:

public function __construct()
{
    $this->middleware('auth')->only(['functionName1', 'functionName2']);
}

3) Protect all functions except some:

public function __construct()
{
    $this->middleware('auth')->except(['functionName1', 'functionName2']);
}

Here you can find all the documentation about this topic: Controllers

I hope this can be helpful, regards!

Tags:

Php

Laravel