Laravel 8 Middleware Tutorial Example

10-Apr-2023

.

Admin

Laravel 8 Middleware Tutorial Example

Hi Dev,

In this tutorial how to create middleware in laravel 8, we will learn how to create custom middleware in laravel 8 application and how to use middleware in laravel 8 based project. Simply create one custom middleware and check language in query string.

Simply laravel middleware filter all the http request in laravel based projects. For example when user is do any request that time middleware check user is loggedin or not and redirect accordingly. Any user is not loggedin but he want to access to dashboard or other things in projects that time middleware filter request redirect to user.

In this laravel middleware tutorial, we will give a example of active or inactive users. Now we will call middleware in routes to restrict logged user to access that routes, if he/she is blocked by admin.

Step:1 Create Middleware


In this step, We have to create custom middleware in laravel based project. So let’s open your command prompt and run below command :

php artisan make:middleware CheckStatus

Step:2 Register Middleware

After successfully create middleware, go to app/http/kernel.php and register your custom middleware here :

app/Http/Kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel

{

....

/**

* The application's route middleware.

*

* These middleware may be assigned to groups or used individually.

*

* @var array

*/

protected $routeMiddleware = [

....

'checkStatus' => \App\Http\Middleware\CheckStatus::class,

];

}

?>

Step:3 Implement logic In Middleware

After successfully register your middleware in laravel project, go to app/http/middleware and implement your logic here :

app/Http/Middleware/CheckStatus.php

<?php

namespace App\Http\Middleware;

use Closure;

class CheckStatus

{

/**

* Handle an incoming request.

*

* @param \Illuminate\Http\Request $request

* @param \Closure $next

* @return mixed

*/

public function handle($request, Closure $next)

{

if (auth()->user()->status == 'active') {

return $next($request);

}

return response()->json('Your account is inactive');

}

}

?>

Step:4 Create Route

In this step, simply we will create a route and use custom middleware here. Filter http every request and protect routes :

routes/web.php

use App\Http\Controllers\HomeController;

use App\Http\Middleware\CheckStatus;

Route::middleware([CheckStatus::class])->group(function(){

Route::get('home', [HomeController::class,'home']);

});

// Route::get('home', [HomeController::class,'home'])->middleware('checkStatus');

// Multiple Middleware Use

// use App\Http\Middleware\CheckAge;

// Route::middleware([CheckStatus::class,CheckAge::class])->group(function(){

// Route::get('home', [HomeController::class,'home']);

// });

// Route::group(['middleware' => ['checkStatus','other_middleware']], function (){

// Route::get('home', [HomeController::class,'home']);

//});

//Route::middleware(['checkStatus', 'other_middleware'])->group(function () {

// Route::get('home', [HomeController::class,'home']);

//});

// Route::get('home', [HomeController::class,'home'])->middleware(['checkStatus', 'other_middleware']);

Step:5 Add Method in Controller

Now we will create one method name language and let’s check :

app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller

{

public function home()

{

dd('You are active');

}

}

?>

We have successfully create custom middleware in laravel based project with simple example. run the example.

It Will help you....

#Laravel 8

#Laravel