About Us Blog Contact Us Request a quote

Laravel 12 middleware

Install Laravel 12 App


composer create-project laravel/laravel example-app

Create route

routes/web.php like as below code


<?php

use App\Http\Controllers\ContactController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::controller(ImageUploadController::class)->group(function () {
 Route::get('/upload-image', 'index')->name('upload.index');
 Route::post('/upload-image', 'store')->name('upload.store')
 ->middleware(checkPhone::class); 
});

Create Middleware for check phone number in request


php artisan make:middleware checkPhone

App/Http/Middleware/ContactFormRequest.php like as below code


<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class checkPhone
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): 
     (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        if ($request->has('phone')) {
            return $next($request);
        }

        return redirect()->back()->with('message-middleware',
        'middleware response - Phone number not found in your request.');
    }
}

Create controller


php artisan make:controller UploadController

App/controller/UploadController.php like as below code


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
       
        return view('upload.index');
    }

  
    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
       
        return 'Upload successfully added.';
    }
}

Create blade file

resources/upload/index.blade.php like as below code


<!DOCTYPE html>
<html lang="en">

<head>
<title>Laravel 12 check phone in request with middleware<</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/
bootstrap.min.css"rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/
bootstrap.bundle.min.js"></script>
</head>

<body>
<div class="container mt-3">
<div class="card">
<div class="card-header">
<h2>Laravel 12 check phone in request with middleware</h2>
</div>
<div class="card-body">
@if (session()->has('message-middleware'))
<div class="alert alert-info" role="alert">
{{ session()->get('message-middleware') }}</div>
@endif
@if (session()->has('message'))
<div class="alert alert-success" role="alert">
{{ session()->get('message') }}</div>
@endif
<form action="{{ route('upload.store') }}" method="post" 
enctype="multipart/form-data">
@csrf
<div class="mb-3 mt-3">
<label for="name" class="form-label">Name:</label>
<input type="text" class="form-control" id="name"
placeholder="Enter name"
name="name">
</div>
<div class="mb-3">
<label for="email" class="form-label">Upload image</label>
<input type="file" class="form-control" id="file" name="file">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
<div class="card-footer text-end"><a href="https://www.laravelexample.com/"
target="_blank">www.laravelexample.com</a></div>
</div>

</body>
</html>


Run Laravel App:

Now Run your laravel 12 app after run these below commands


php artisan serve

Go to your web browser, hit this URL http://localhost:8000/contacts and see your laravel app output:




Recent Posts