Создание Middleware
По умолчанию, файл Middleware создается в папке app/Http/Middleware
, по средствам команды:
php artisan make:middleware AgeMiddleware
Файл AgeMiddleware.php
будет создано в папке app/Http/Middleware
и содержать следующий код:
app/Http/Middleware/AgeMiddleware.php<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class AgeMiddleware
{
// Обрабатывает входящий запрос @param \Illuminate\Http\Request $request @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
public function handle(Request $request, Closure $next)
{
return $next($request);
}
}
В методе handle
указывается основная логика, которую хотим реализовать, есть два типа которые разделены кодом return $next($request);
:
до
до того, как запрос фактически обработан и ответ построенпосле
после того, как запрос фактически обработан и ответ построен
Для теста будем перенаправлять пользователя перед обработкой запроса, следовательно это будет middleware до
:
app/Http/Middleware/AgeMiddleware.php<?php
namespace App\Http\Middleware;
use Closure;
class MobileRedirect
{
// Обрабатывает входящий запрос @param \Illuminate\Http\Request $request @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
public function handle($request, Closure $next)
{
// редирект на страницу mobile-site-url-goes-here
return redirect('mobile-site-url-goes-here');
return $next($request);
}
}