CURSO LARAVEL – sesión 4

A medida que nuestro proyecto crece nuestras plantillas se vuelven más complejas y es inevitable encontrarnos con que estamos repitiendo etiquetas y estructuras que podríamos compartir entre multiples vistas.

Para integrar cualquier diseño usando Laravel Blade:

Directiva @include

Blade incluye una directiva llamada @include. Para utilizarla solo tenemos que pasarle el nombre del archivo que queremos incluir sin el .php:

@include('header')

{{ $title }}

… @include(‘footer’)

Podemos usar múltiples directivas @include dentro de una misma plantilla de Blade.

Helper asset()

El helper asset nos dará la ruta absoluta al archivo indicado:

<link href="{{ asset('css/style.css') }}" rel="stylesheet">

Utilizando este helper podemos evitar que la ruta del archivo cambie dependiendo de la URL.

Layout principal

En lugar de separar nuestra plantilla en diferentes archivos, podemos crear una sola plantilla que tendrá toda la estructura de nuestro diseño. Podemos llamar a esta plantilla layout.blade.php, por ejemplo, y colocar todo el código de nuestro diseño allí.

Utilizando la directiva @yield dentro de esta plantilla podemos indicar secciones (pasando como argumento el nombre de la sección) y luego en plantillas individuales podemos colocar el contenido de dichas secciones:

@yield('content')

Puedes llamar a tu layout de cualquier forma, siempre y cuando coloques la extensión .blade.php.

En este ejemplo se llama layout.blade.php.

Puedes agregar tantas directivas @yield como quieras a tu layout. Por ejemplo, puedes agregar una directiva yield para personalizar el título de la página:

Extender de una plantilla
En cada una de nuestras plantillas individuales en lugar de incluir el header o footer le indicamos a Laravel que la vista debe extender de layout.blade.php. No es necesario colocar la extensión del archivo. Tampoco es necesario colocar la ruta completa, ya que Laravel por defecto buscará el archivo dentro del directorio resources/views:

@extends('layout')


Hecho esto, debemos definir las secciones. Para ello utilizamos la directiva @section, pasando como argumento el nombre de la sección:

@section('title') Usuario {{ $id }} @endsection
@section('content')

@endsection


Indicamos el final o cierre de la sección con la directiva @endsection.

La directiva @section

define una sección de contenido, mientras que la directiva @yield es usada para mostrar el contenido de una sección específica.

Dado que el titulo es una sola línea, podemos pasar el contenido como el segundo argumento de @section:

@section('title', "Usuario {$id}")


El código que se encuentra entre comillas es PHP y no Blade, por lo que en lugar de utilizar la sintaxis de dobles llaves {{ $id }} utilizaremos {$id} o simplemente $id.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Ingenio Hosting.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad