J'essaie de créer un site en utilisant laravel, mais j'ai vraiment du mal à résoudre les problèmes de base que la documentation ne couvre pas.
Dans ce cas, je vois qu'il est dit que je peux inclure une vue dans une autre en utilisant @include('view.name')
. Qu'est ce que view.name? Où est-il sauvé? J'ai essayé de créer un fichier app/views/view.name.blade.php
, mais il n'a pas été lu. Comment le nom de fichier correspond-il au nom de la lame?
EDIT: La solution recommandée ci-dessous était celle de 2014. Vous devez maintenant utiliser @include
, comme indiqué dans autre réponse .
Dans les vues Laravel, le point est utilisé comme séparateur de dossiers . Ainsi, par exemple, j'ai ce code
return View::make('auth.details', array('id' => $id));
qui pointe vers app/views/auth/details.blade.php
Et pour inclure une vue dans une vue, faites comme ceci:
fichier: layout.blade.php
<html>
<html stuff>
@yield('content')
</html>
fichier: hello.blade.php
@extends('layout')
@section('content')
<html stuff>
@stop
Vous pouvez utiliser le moteur de modèle de lame:
@include('view.name')
'view.name' vivra dans votre dossier principal:
// for laravel 4.X
app/views/view/name.blade.php
// for laravel 5.X
resources/views/view/name.blade.php
Un autre exemple
@include('hello.world');
afficherait la vue suivante
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
Un autre exemple
@include('some.directory.structure.foo');
afficherait la vue suivante
// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php
// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php
En résumé, la notation par points définit la hiérarchie de répertoires dans laquelle se trouve votre vue, suivie du nom de la vue, par rapport au dossier app/views
pour laravel 4.x ou à votre dossier resources/views
dans laravel 5.x
ADDITIONNEL
Si vous voulez passer des paramètres: @include('view.name', array('paramName' => 'value'))
Vous pouvez ensuite utiliser la valeur dans vos vues comme suit: <p>{{$paramName}}</p>
A partir de Laravel 5.6, si vous avez ce type de structure et que vous souhaitez inclure un autre fichier de lame dans un sous-dossier,
| --- vues
| ------- parentFolder (Dossier)
| ---------- name.blade.php (fichier de lame)
| ---------- childFolder (Dossier)
| -------------- mypage.blade.php (fichier de lame)
name.blade.php
<html>
@include('parentFolder.childFolder.mypage')
</html>