Está en la página 1de 28

Navegación de Página

Ing. Yosip Urquizo Gómez


www.yosipurquizo.com
Crear las vistas y enrutarlas
Crear las vistas Crear las rutas

Vista home.blade.php
Crear plantilla layout.blade.php
Copiamos todo el contenido de home a layout de esta forma:

Agregamos la directiva @extends en la plantilla home.blade.php


Agregando contenido dinámico a cada vista
Agregamos la directiva @yield a la plantilla layout.blade.php en el lugar donde queremos que
aparezca dinámicamente el contenido enviado.
Agregando directiva @section en plantillas
Agregamos la directiva @section en cada plantilla indicando donde se agregará el contenido en
el layout.
Agregando directiva @yield() para el título
Estructuras de control en blade
Definimos en la página web.php el
arreglo $servicios en el cual
asignaremos 5 servicios y lo enviamos a
la plantilla servicios usando el método
compact(‘’) de esta forma:

En la plantilla servicios.blade.php
recogemos la variable $servicios y lo
recorremos con un foreach para
listarlos de esta forma:
Estructuras de control @if en blade
Para eso modificamos el código de
web.php comentando los elementos
del array $servicios

Luego agregamos un @if en la plantilla


servicios.blade.php para verificar si hay
servicios que mostrar, de lo contrario
nos mostrará un mensaje "No existe
ningún servicio que mostrar”, de esta
manera:
Uso de Controladores
Ing. Yosip Urquizo Gómez
www.yosipurquizo.com
Enumeramos las rutas para ver los controladores
Vemos que al listar las rutas existente, todas las vistas utilizan ViewController
Creamos un nuevo controlador
Utilizando la ventana de comandos, creamos un nuevo controlador para la ruta servicios
Agregamos la nueva ruta para el controlador
Route::get('servicios','ServiciosController@servicios');

Creamos la función servicios y agregamos el arreglo


que traemos de web.php

Ejecutamos nuevamente el comando para listar las rutas y vemos que


ya aparece nuestra ruta.
Controladores Resource y API
Creamos un nuevo controlador usado la opción make:controller --resource

Nos crea el controlador con los 7 métodos mas usados index(), create(), store(), show(), edit(), update(),
destroy(). Copiamos el código que teníamos en el método servicios al método index.

Llamamos al método index en nuestro archivo web.php


Generar las 7 rutas de los métodos del controlador
En el archivo web.php creamos una nueva ruta usando el comando:
Route::resource('servicios','Servicios2Controller');

Hacemos un listado de todas las rutas para verificar que todas han sido creadas
Método only de resource()
Utilizando este método podemos elegir cual de los 7 métodos resource queremos que se
registre. Ejemplo: Route::resource('servicios','Servicios2Controller')->only('index','show');

Ejecutamos nuevamente el listado de rutas para verificar.

Lo opuesto podemos lograr si utilizamos el método except()


Controladores API
Creamos un nuevo controlador usado la opción make:controller --api

La diferencia con el controlador resource es que api excluye los métodos create y edit que son los que
muestran las vista de los formularios.
Activación de links de navegación
Cuando hagamos clic en una opción debe quedar activo cambiando de color dicho enlace.
Dicho cambio lo realizamos en la plantilla layaout.blade.php
Agregar la clase activo dinámicamente al enlace
Para lograr dicho cometido haremos uso de la clase request(), que devuelve la información de lo que
se esta ejecutándose en ese momento.
routeIs(), que devuelve verdadero o falso si la ruta que le pasamos por parámetro es en la que
estamos actualmente. Por ejemplo si evaluamos a home(en la plantilla layout.blade.php) y estamos
en esa opción nos devolverá verdadero.
Hacemos uso de la clase boleana routeIs()
Utilizamos un operador ternario para preguntar si estamos en un enlace determinado y agregamos
activo(de la clase) en caso sea verdadero, y en caso sea falso no agregamos nada.

Cuando Home esta activo Cuando Home no esta activo


Agregamos la misma lógica a los demás enlaces
Hay que tener en cuenta que lo que va dentro de routeIs(‘nosotros’), es el nombre de la ruta o sea:
Route::view('nosotros','nosotros')->name('nosotros');

Cuando Home esta activo Cuando Nosotros esta activo


Uso de Helpers para mejorar la vista del código
Crearemos una función llamada setActivo() y por parámetro le pasaremos el nombre de la ruta.

Para este caso crearemos un nuevo archivo en la carpeta app y le llamaremos helpers.php y dentro la
función setActivo($ruta) que recibirá $ruta como parámetro.
Modificamos el código en layout.blade.php
Modificamos el archivo composer.json
Vamos al archivo composer.json para indicarle que debe cargar a nuestro archivo helpers.php que no
es una clase y no es cargada por defecto.
Ubicamos la sección autoload que es donde se define todas las clases que se van a cargar
automáticamente.
Indicarle a composer que vuelva a compilar el
autocargador que a sido modificado
Abrimos el terminal y estando dentro del proyecto ejecutamos: composer dumpautoload
Creando el archivo partials/nav.blade.php
Creamos la carpeta partials dentro de views que almacenará archivos parciales como el de la
navegación. Luego creamos el archivo nav.blade.php en el cual copiaremos la parte de la navegación
de la plantilla layout.blade.php

Importante
Agregamos la directiva Cada vez que queramos modificar la
@include() de blade y por navegación(menu), lo haremos desde el
parámetro le pasamos la archivo nav.blade.php
ubicación del archivo
nav.blade.php
Ejecutando Proyecto
Localhost:8000
Práctica Calificada
Teniendo en cuenta el desarrollo de clase, cree el proyecto cexpe con el siguiente menú de opciones:

1. Crear una plantilla layout.blade.php donde se creará las directivas @yield() para:
a. Título
b. Menú superior
2. Crear los controladores necesarios.
3. Crear la activación de links de navegación para que quede activa la opción que seleccionó
en ese momento.
4. Crear helper para mejorar la vista del código.
Gracias - ¿Preguntas?
Ing. Yosip Urquizo Gómez
www.yosipurquizo.com

También podría gustarte