it-swarm.com.de

Wie füge ich eine Unteransicht in Blade-Vorlagen hinzu?

Ich versuche, eine Site mit Laravel einzurichten, aber ich habe wirklich Probleme mit grundlegenden Dingen, die in der Dokumentation nicht behandelt werden.

In diesem Fall sehe ich, dass ich mit @include('view.name') eine Ansicht in eine andere aufnehmen kann. Was ist view.name? Wo ist es gerettet? Ich habe versucht, eine Datei app/views/view.name.blade.php zu erstellen, die jedoch nicht gelesen wurde. Wie ist der Dateiname dem Blade-Namen zugeordnet?

40
Benubird

EDIT: Unten war die bevorzugte Lösung für 2014. Heutzutage sollten Sie @include verwenden, wie in andere Antwort erwähnt.


In Laravel-Ansichten wird der Punkt als Ordnertrennzeichen verwendet. So habe ich zum Beispiel diesen Code

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

was auf app/views/auth/details.blade.php verweist

Und um eine Ansicht in eine Ansicht aufzunehmen, die Sie so machen:

datei: layout.blade.php

<html>
  <html stuff>
  @yield('content')
</html>

datei: hello.blade.php

@extends('layout')

@section('content')
  <html stuff>
@stop
22
winkbrace

Sie können die Blade-Template-Engine verwenden: 

@include('view.name') 

'view.name' würde sich in Ihrem Hauptansichtsordner befinden: 

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

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

Ein anderes Beispiel

@include('hello.world');

würde die folgende Ansicht anzeigen

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

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

Ein anderes Beispiel

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

würde die folgende Ansicht anzeigen

// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php

// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php

Im Grunde definiert die Punktnotation die Verzeichnishierarchie, in der sich Ihre Ansicht befindet, gefolgt vom Namen der Ansicht, relativ zum Ordner app/views für Laravel 4.x oder Ihrem Ordner resources/views in Laravel 5.x

ZUS&AUML;TZLICH

Wenn Sie Parameter übergeben wollen: @include('view.name', array('paramName' => 'value'))

Sie können den Wert dann in Ihren Ansichten wie folgt verwenden: <p>{{$paramName}}</p>

157
Gaz_Edge

Ab Laravel 5.6, wenn Sie über diese Art von Struktur verfügen und eine andere Blade-Datei in einen Unterordner aufnehmen möchten,

Ansichten

| ------- parentFolder (Ordner)

| ---------- name.blade.php (Blade-Datei)

| ---------- childFolder (Ordner)

| -------------- mypage.blade.php (Blade-Datei)

name.blade.php

  <html>
      @include('parentFolder.childFolder.mypage')
  </html>
0