2017-02-27 4 views
1

ich die Demoseite in Laravel gebaut, aber ich habe den folgenden Fehler:Laravel: Layouts.master nicht gefunden

ErrorException in FileViewFinder.php line 137: View [layouts.master] not found.(View: /var/www/html/project/laravel/laravel/resources/views/page.blade.php)

Die master.blade.php zum page.blade.php nächsten ist, sind beide in resources/Ansichten

master.blade.php

<html> 
    <head> 
     <title>@yield('title')</title> 
    </head> 
    <body> 
     @section('sidebar') 
     This is the master sidebar. 
     @show 
     <div class="container"> 
     @section('content') 
     </div> 
    </body> 
</html> 

page.blade.php

@extends('layouts.master') 
@yield('title', 'Page Title') 
@section('sidebar') 
@parent 
<p>This is appended to the master sidebar.</p> 
@endsection 
@section('content') 
<h2>{{$name}}</h2> 
<p>This is my body content.</p> 
@endsection 

Was läuft schief? Ich Arbeit von this tutorial.

+1

Haben Sie 'Layouts'-Ordner und' Master'-Datei in diesem Ordner? – C2486

+0

Nein, sie sind nebeneinander. Ich putted in einem Layouts-Ordner, und jetzt jeder Fehler, aber $ Name Variable keinen Wert erhalten. – Feralheart

Antwort

5

Versuchen

@extends('master') 

Sie sind beide an der Wurzel views gesagt haben. Oder erstellen Sie ein Verzeichnis namens layouts und platzieren Sie master.blade.php hinein.

Updates In Ihrem master.blade.php, wo Sie Ihre content werden "injiziert" wollen, tun:

@yield('content') 
//remove @section('content') because your master does not extends any other layout 

die genau die gleiche Art und Weise Sie mit @yield('title') tat.

+0

Jetzt lädt es die Seite, aber die Variable $ name hat keinen Wert. (Im turorial fügen sie einen Wert in der Route hinzu (Route :: get ('blade', function() { Rückansicht ('page', array ('name' => 'Test'));});) – Feralheart

+0

Fügen Sie den Wert hinzu, wie sie es taten, und der '$ name' erscheint: – EddyTheDove

+0

Ich habe ihn hinzugefügt:" Route :: get ('blade', function() {return view ('page', array ('name' => ') Anonymous '));}); " Das Tutorial sagt, dass in diesem Fall das Wort Anonym erscheinen sollte – Feralheart

2

Wenn Sie @extends('layouts.master') verwenden, bedeutet dies, dass Ihre Ansicht nach dem master Layout unter resources/views/layouts Verzeichnis sucht.

Stellen Sie also sicher, dass das Layout master unter dem Verzeichnis resources/views/layouts existiert.

Verwandte Themen