Saltar al contenido

¿Cuál es la diferencia entre @yield e @include de Laravel?

Solución:

@yield se utiliza principalmente para definir una sección en un diseño. Cuando ese diseño se extiende con @extends, puede definir lo que va en esa sección con la directiva @section en sus vistas.

El diseño generalmente contiene su HTML, encabezado, cuerpo, encabezado y pies de página. Usted define un área (@yield) dentro del diseño en el que sus páginas que están extendiendo la plantilla colocarán su contenido.

En su plantilla maestra, define el área. Por ejemplo:

<body>
     @yield('content')
</body>

Digamos que su página de inicio extiende ese diseño

@extends('layouts.app')

@section('content')
     // home page content here
@endsection

Cualquier HTML que defina en la sección de contenido en la vista de su página de inicio en la sección ‘contenido’ se inyectará en el diseño que se extendió en ese lugar.

@include se usa para HTML reutilizable al igual que un PHP include estándar. No tiene esa relación padre / hijo como @yield y @section.

Recomiendo encarecidamente leer la documentación sobre las plantillas Blade en el sitio de Laravel para obtener una descripción general más completa

https://laravel.com/docs/5.0/templates

@incluir y @producir Hay dos tipos de operaciones completamente diferentes para importar código al archivo actual.

@incluir – importar el contenido de un archivo separado en el archivo actual en la ubicación en la que está colocado. es decir:

Archivo de diseño:

< some html or other script >

@include('include.file_name') // "include." indicates the subdirectory that the file is in

< more html or other script >

Incluir archivo (un archivo blade con un bloque de código):

< some cool code here >

Luego, el contenido de ‘file_name’ (también un archivo blade) se importa en el lugar donde se encuentra la directiva @include.

@producir importa código de una “sección” en el archivo secundario (el archivo blade “ver”), es decir:

Archivo de diseño:

< some html or other script >

@yield('needed_section_name')

< more html or other script >

La siguiente sección es necesaria en el archivo blade “ver” que está configurado para “extender” ese archivo de diseño.

“Ver” archivo blade:

@extends('layout.file_name')
... code as neeeded

@section('needed_section_name')
< some cool code here >
@stop

...
more code as needed

Ahora, el archivo de diseño se importará en la sección de código que coincida con el nombre utilizado.

Más sobre el tema aquí …

La diferencia entre @yield y @include así es como los usas.

Si tiene un tipo de contenido estático, como una barra de navegación, esta parte de la página siempre estará en el mismo lugar en el diseño. Cuando usas @include en el archivo de diseño, la barra de navegación se colocará una vez por diseño. Pero si usas @yield se le obligará a hacer un @section de la barra de navegación en cada página que @extends el diseño.

@yield es, por otro lado, una mejor opción cuando el contenido está cambiando en todas las páginas pero aún desea utilizar el mismo diseño en todas partes. Si utiliza @include tendrá que hacer un nuevo diseño para cada página, debido a la diferencia de contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *