Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/filtros»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}}») |
|||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}} | {{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}} | ||
+ | ===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 | ||
+ | <source lang=php> | ||
+ | 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 | ||
+ | */ | ||
+ | // | ||
+ | }); | ||
+ | </source> | ||
+ | {{Actividad| | ||
+ | Vamos a hacer un filtro after y otro before | ||
+ | Se ejecutarán antes y después de una llamada a una página | ||
+ | Before generará un número aleatorio del 1 al 3. Si el valor es 2 mostrará un mensaje, si no no hará nada | ||
+ | After simplemente mostrará un mensaje | ||
+ | <source lang=php> | ||
+ | </source> | ||
+ | }} | ||
+ | ===Definiendo el filtro=== | ||
+ | *En el fichero filter.php | ||
+ | <source lang=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 />'; | ||
+ | }); | ||
+ | </source> | ||
+ | *En el fichero routes.php | ||
+ | ===Usanto el filtro=== | ||
+ | <source lang=php> | ||
+ | Route::get('/', array('before'=>'filtro_antes', | ||
+ | 'after'=>'filtro_despues', | ||
+ | function(){ | ||
+ | echo'Página principal<br/>';} | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | </source> |
Última revisión de 18:55 13 feb 2015
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/>';} ) );