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:
No comments: