Usuario:ManuelRomero/Laravel/filtros
De WikiEducator
Conceto
- Un filtro es una accion o verificación que queremos realizar o antes o después de ralizar una llamada a una ruta
- En php los filtros se definen en el fichero filter.php' ubicado en nuestro directorio app
- Existen creados dos filtros por parte de laravel
- before
- Este filtro se ejecutará siempre antes de de cualquier otro filtro y por supuesto antes de cargar la página
- after
- Este filtro se ejecutará después de haber cargado la página y después de cualquier otro filtro before que hayamos creado.
- Se conocen como filtros globales, y los podemos ver en el fichero anteriormente comentado
App::before(function($request) {/* Este código que se ejecuta siempre antes de cualquier ruta y cualquier filtro before ----------- $request es una variable con información de la solicitud del usuario que ha echo que se lance este filtro */ }); App::after(function($request, $response) { /* Este código que se ejecuta siempre antes de cualquier ruta y cualquier filtro before ----------- $request es la misma variable que la de before $response contiene información de la respuesta enviada al usuario */ // });
Definiendo el filtro
- En el fichero filter.php
Route::filter('filtro_antes',function(){ $numero = rand(1, 3 ); echo 'Imprimiendo en el filtro antes '.$numero.' <br />'; if ( $numero == 2){ return 'Filtro retorna un texto, por lo tanto cambio el flujo'; } }); Route::filter('filtro_despues',function(){ echo 'Imprimiendo en el filtro despues<br />'; });
- En el fichero routes.php
Usanto el filtro
Route::get('/', array('before'=>'filtro_antes', 'after'=>'filtro_despues', function(){ echo'Página principal<br/>';} ) );