php artisan make:middleware CheckAge
En el Http\Kernel.php añadir en $routeMiddleware (pq solo lo vamos a ejecutar en unas rutas concretas, sino se pondría en el global):
'es_mayor_de_edad' => \App\Http\Middleware\CheckAge::class
En el middleware creado (CheckAge.php):
public function handle($request, Closure $next)
{
if ($request->age < 18) {
return redirect('home');
}
return $next($request);
}
En routes/web.php:
Route::get('front.garci-list', 'GarciController@frontGarciList')->name('front.garci-list')->middleware('es_mayor_de_edad');
De esta manera la url: http://localhost/edc_laravel/public/front.garci-list?age=19
Entra perfectamente en el controlador de frontGarciList
La url: http://localhost/edc_laravel/public/front.garci-list?age=16
Se redirige a home sin llegar a entrar en el controller
Se pueden poner varios middleware, por ejemplo:
Route::get('front.garci-list', 'GarciController@frontGarciList')->name('front.garci-list')->middleware('auth','es_mayor_de_edad');
Ejecutaría primero el auth, luego el de 'es_mayor_de_edad' y si pasa el filtro de todos ya se redirige correctamente al controller.
No hay comentarios:
Publicar un comentario