vista - variables en blade laravel
¿Cómo incluir una subvista en las plantillas de Blade? (3)
Estoy tratando de configurar un sitio usando laravel, pero realmente estoy teniendo problemas con cosas básicas que la documentación no cubre.
En este caso, veo que dice que puedo incluir una vista dentro de otra utilizando @include(''view.name'')
. ¿Qué es view.name? ¿Dónde se guarda? Traté de crear una app/views/view.name.blade.php
archivo app/views/view.name.blade.php
, pero no fue leído. ¿Cómo se correlaciona el nombre del archivo con el nombre de la hoja?
A partir de Laravel 5.6, si tiene este tipo de estructura y desea incluir otro archivo blade dentro de una subcarpeta,
| --- vistas
| ------- parentFolder (Carpeta)
| ---------- nombre.blade.php (archivo Blade)
| ---------- childFolder (Carpeta)
| -------------- mypage.blade.php (archivo Blade)
name.blade.php
<html>
@include(''parentFolder.childFolder.mypage'')
</html>
Puede usar el motor de plantillas de blades:
@include(''view.name'')
''view.name'' residiría en su carpeta de vistas principal
// for laravel 4.X
app/views/view/name.blade.php
// for laravel 5.X
resources/views/view/name.blade.php
Otro ejemplo
@include(''hello.world'');
mostraría la siguiente vista
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
Otro ejemplo
@include(''some.directory.structure.foo'');
mostraría la siguiente vista
// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php
// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php
Básicamente, la notación de puntos define la jerarquía de directorios en la que se encuentra su vista, seguido del nombre de la vista, relativa a la carpeta de la app/views
para laravel 4.x o su carpeta resources/views
en laravel 5.x
ADICIONAL
Si desea pasar parámetros: @include(''view.name'', array(''paramName'' => ''value''))
Luego puede usar el valor en sus vistas como <p>{{$paramName}}</p>
EDITAR: A continuación se muestra la solución preferida en 2014. En la actualidad, debe usar @include
, como se menciona en la otra respuesta .
En las vistas de Laravel, el punto se usa como separador de carpetas. Entonces, por ejemplo, tengo este código
return View::make(''auth.details'', array(''id'' => $id));
que apunta a app / views / auth / details.blade.php
Y para incluir una vista dentro de una vista, te gusta esto:
archivo: layout.blade.php
<html>
<html stuff>
@yield(''content'')
</html>
archivo: hello.blade.php
@extends(''layout'')
@section(''content'')
<html stuff>
@stop