Ultima Laravel
Share
Explore
Vistas

icon picker
Plantillas mediante Blade

Directiva @include

Blade incluye una directiva llamada @include. Para usarla solamente tenemos que pasarle el nombre del archivo que queremos incluir:
@include('header')
<h1>{{ $title }}</h1>
...
@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:
<main role="main" class="container">
@yield('content')
</main>
Puedes nombrar 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:
<title>@yield('title') - Mipagina.net</title>

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')

<!-- Contenido de la sección -->

@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.

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.