Ultima Laravel
Share
Explore
Con las plantillas de Laravel blade.php podemos simplificar nuestro código.

Plantillas o Templates

A través de las plantillas de Laravel vamos a escribir menos código PHP y vamos a tener nuestros archivos mejor organizados.
Blade es el sistema de plantillas que trae Laravel, por eso los archivos de plantillas que guardamos en el directorio de views llevan la extensión blade.php.
De esta manera sabemos inmediatamente que se trata de una plantilla de Laravel y que forma parte de una vista que se mostrará en el navegador.

Directivas

Laravel tiene un gran número de directivas que podemos utilizar para ahorrarnos mucho código repetitivo entre otras funciones.
Digamos que las directivas son pequeñas funciones ya escritas que aceptan parámetros y que cada una de ellas hace una función diferente dentro de Laravel.
@yield Define el contenido dinámico que se va a cargar. Se usa conjuntamente con @section
@section y @endsection bloque de código dinámico
@extends importa el contenido de una plantilla ya creada.

Separando código

Veamos un ejemplo de cómo hacer uso del poder de Laravel para crear plantillas y no repetir código.
Supongamos que tenemos ciertas estructuras HTML repetidas como puede ser una cabecera header, un menú de navegación nav y un par de secciones que hacen uso de este mismo código.
Supongamos que tenemos 2 apartados en la web:
Alumnos
Cursos

Primero de todo tendremos que generar un archivo que haga de plantilla de nuestro sitio web.
Para ello creamos el archivo plantilla.blade.php dentro de nuestro directorio de plantillas resources/views.
Dicho archivo va a contener el típico código de una página simple de HTML y en el body añadiremos nuestros contenido estático y dinámico.
<body>
<!-- CONTENIDO ESTÁTICO PARA TODAS LAS SECCIONES -->
<h1>Bienvenid@s a el Colegio</h1>
<hr>

<!-- MENÚ -->
<nav>
<a href={{ route('alumno.index') }}>Alumnos</a>
<a href={{ route('curso.index') }}>Cursos</a>
</nav>

<!-- CONTENIDO DINÁMICO EN FUNCIÓN DE LA SECCIÓN QUE SE VISITA -->
<header>
@yield('apartado')
</header>
</body>

Cada sección que haga uso de esta plantilla contendrá el texto estático Bienvenid@s al Colegio seguido de un menú de navegación con enlaces a cada una de las secciones y el contenido dinámico de cada sección.
Ahora crearemos los archivos dinámicos de cada una de las secciones, en nuestro caso alumnos.blade.php , cursos.blade.php y profesores.blade.php
<?php

// alumnos.blade.php

@extends('plantilla')

@section('apartado')
<h2>Estás en ALUMNOS</h2>
@endsection

Importamos el contenido de plantilla bajo la directiva @extends para que cargue los elementos estáticos que hemos declarado y con la directiva @section y @endsection definimos el bloque de código dinámico, en función de la sección que estemos visitando.
Ahora casi lo mismo para la sección de cursos
<?php

@extends('plantilla')

@section('apartado')
<h2>Estás en CURSOS</h2>
@endsection

El último paso que nos queda es configurar el archivo de rutas routes/web.php
<?php

// web.php

Route::view('alumnos', 'alumno') -> name('alumno');
Route::view('cursos', 'curso') -> name('curso');

De esta manera podremos hacer uso del menú de navegación que hemos puesto en nuestra plantilla y gracias a los alias alumno y curso, la URL será más amigable.

Estructuras de control

Como en todo buen lenguaje de programación, en Laravel también tenemos estructuras de control.
En Blade (plantillas de Laravel) siempre que iniciemos un bloque de estructura de control DEBEMOS cerrarla
@foreach ~ @endforeach lo usamos para recorrer arrays
@if ~ @endif para comprobar condiciones lógicas
@switch ~ @endswitch en función del valor de una variable ejecutar un código
@case define la casuística del switch
@break rompe la ejecución del código en curso
@default si ninguna casuística se cumple
<?php

$equipo = ['María', 'Alfredo', 'William', 'Verónica'];

@foreach ($equipo as $nombre)
<p> {{ $nombre }} </p>
@endforeach

Acordaros que podemos pasar variables a través de las rutas como si fueran parámetros. Pero en este caso, vamos a ver otra directiva más; el uso de @compact.
<?php

// Uso de @compact
$equipo = ['María', 'Alfredo', 'William', 'Verónica'];

// Route::view('nosotros', ['equipo' => 'equipo']);
Route::view('nosotros', @compact('equipo'));

Caché

Las vistas generadas por Blade están en PHP y se almacenan en caché hasta que se modifican, lo que garantiza un buen rendimiento. El caché se encuentra aquí:
image.png
Si necesita limpiar este caché, no vale la pena ir a eliminar estos archivos en la carpeta, hay un comando de Artisan para eso:
php artisan view:clear
A veces es necesario durante el desarrollo cuando una vista no se regenera correctamente.

Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.