Come includere una sottovista nei modelli Blade?

Sto cercando di creare un sito usando laravel, ma ho davvero problemi con le cose di base che la documentazione non copre.

In questo caso, vedo che dice che posso includere una vista all’interno di un’altra usando @include('view.name') . Cos’è view.name? Dove viene salvato? Ho provato a creare un file app/views/view.name.blade.php , ma non è stato letto. Come si associa il nome del file al nome del blade?

EDIT: Di seguito è stata la soluzione preferita nel 2014. Oggi dovresti usare @include , come menzionato nell’altra risposta .


Nelle viste Laravel il punto viene utilizzato come separatore di cartelle. Quindi per esempio ho questo codice

 return View::make('auth.details', array('id' => $id)); 

che punta ad app / views / auth / details.blade.php

E per includere una vista all’interno di una vista come questa:

file: layout.blade.php

   @yield('content')  

file: hello.blade.php

 @extends('layout') @section('content')  @stop 

È ansible utilizzare il motore di template blade:

 @include('view.name') 

‘view.name’ potrebbe vivere nella cartella delle viste principali

 // for laravel 4.X app/views/view/name.blade.php // for laravel 5.X resources/views/view/name.blade.php 

Un altro esempio

 @include('hello.world'); 

mostrerebbe la seguente vista

 // for laravel 4.X app/views/hello/world.blade.php // for laravel 5.X resources/views/hello/world.blade.php 

Un altro esempio

 @include('some.directory.structure.foo'); 

mostrerebbe la seguente 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 

Quindi in pratica la notazione dei punti definisce la gerarchia della directory in cui si trova la vista, seguita dal nome della vista, relativo alla cartella app/views per laravel 4.x o alla cartella resources/views in laravel 5.x

SUPPLEMENTARI

Se vuoi passare parametri: @include('view.name', array('paramName' => 'value'))

Puoi quindi utilizzare il valore nelle visualizzazioni come

{{$paramName}}

A partire da Laravel 5.6, se si dispone di questo tipo di struttura e si desidera includere un altro file blade all’interno di una sottocartella,

| — visualizzazioni

| ——- parentFolder (cartella)

| ———- nome.blade.php (file blade)

| ———- childFolder (cartella)

| ————– mypage.blade.php (File Blade)

name.blade.php

   @include('parentFolder.childFolder.mypage')