Herencia de plantillas Blade
Comprar curso

49. Herencia de plantillas Blade

En este capítulo, aprenderás cómo utilizar la herencia de plantillas Blade en Laravel 10. La herencia de plantillas Blade te permite crear plantillas de vista base que pueden ser heredadas y extendidas por otras vistas en tu aplicación.


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    En Laravel 10, la herencia de plantillas Blade es una forma poderosa de estructurar y organizar las vistas de tu aplicación. La herencia de plantillas te permite crear una plantilla base para tus vistas, con secciones que se pueden rellenar con contenido específico en cada vista.

    Para utilizar la herencia de plantillas en Laravel 10, debes seguir los siguientes pasos:

    1. Crear una plantilla base: Crea una plantilla base para tus vistas, que contenga el contenido común que deseas mostrar en todas las páginas de tu aplicación. Esta plantilla base puede ser tan simple o compleja como desees, pero debe contener las secciones que deseas rellenar con contenido específico en cada vista.

    Por ejemplo, puedes crear un archivo 'app.blade.phpresources/views/layouts con el siguiente contenido:

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>@yield('title')</title>
    </head>
    <body>
       <div class="container">
           @yield('content')
       </div>
    </body>
    </html>

    Este archivo define una plantilla base que contiene un título y un contenedor principal que se rellenará con contenido específico en cada vista.

    2. Extender la plantilla base: Crea una nueva vista que extienda la plantilla base que acabas de crear. Para extender la plantilla base, utiliza la directiva '@extends

    Por ejemplo, puedes crear una nueva vista llamada 'welcome.blade.php

    @extends('layouts.app')
    @section('title', 'Welcome')
    @section('content')
       <h1>Welcome to my app!</h1>
       <p>This is the home page.</p>
    @endsection

    Este archivo extiende la plantilla base 'app.blade.php

    3. Rellenar las secciones: En la plantilla base, utiliza la directiva '@yield

    En el ejemplo anterior, la plantilla base 'app.blade.php

    Al utilizar la herencia de plantillas en Laravel 10, puedes crear vistas reutilizables y fáciles de mantener en tu aplicación. Puedes crear una plantilla base con la estructura y el diseño de tu aplicación, y luego extenderla en cada vista para proporcionar el contenido específico de la página.

  • Edmer

    Edmer hace 9 meses

    Cual es la diferencia, conveniencia, ventaja o desventaja entre esta opción y SLOT's ?

    • Victor Arana Flores hace 9 meses

      No hay una ventajas o desventajas, existe ambas.

      Hace algunas cuantas versiones de Laravel, solo teníamos la herencia de plantillas. Luego Laravel incluyo el concepto de Componentes, para asemejar la forma de trabajar que tiene muchos otros frameworks que tambien lo usan.

      Y si no me equivoco fue en Laravel 8 con la introducción de Jetstream que se popularizo el uso de componentes para crear plantillas, ya que la plantilla que venia con jetstream estaba construido con un componente.

      Antes se usaba Laravel UI para la autenticacion, y al estar creado la plantilla por herencia, esa era la forma en la que soliamos trabajar.

      Me parece que el concepto de componentes se introdujo en Laravel 7, pero no fue hasta Laravel 8 que se popularizo.

      Y si miras cursos de Laravel 7 para atrás, verás que todos usan la herencia de plantilla.

      Pero tambien cabe recalcar que hay paquetes muy populares que siguen usando la herencia de plantilla. Uno de ellos es AdminLTE para Laravel.

  • Limber Sanchez Mendoza

    Limber Sanchez Mendoza hace 1 año

    Hola Victor, encuentro un poco de contradicción en la parte final del video, indicas que cuando se utiliza más de un @section la plantilla solo va a tomar encuenta a uno solo. Sin embargo, tenemos dos @section uno que es el ‘title’ y el otro ‘content’ y ambos son tomados en cuenta en la plantilla. Podrias aclarar ese punto por favor.

    • Victor Arana Flores hace 1 año

      Hola Limber. Me refería a cuando utilizas dos sections con el mismo nombre.

      Y como puse en el ejemplo poner @section('title', ‘Prueba1’) @section('title', ‘Prueba2’)

      Y hay ocasiones donde vas a querer llamar a la misma llave varias veces, por ejemplo para incluir varias etiquetas meta, o varios etiquetas link. En esos casos es mejor idea trabajar con @stack @push