【问题标题】:Laravel: Layouts.master not foundLaravel:未找到 Layouts.master
【发布时间】:2017-07-17 15:43:31
【问题描述】:

我在 Laravel 中构建了演示站点,但出现以下错误:

FileViewFinder.php 第 137 行中的 ErrorException:查看 [layouts.master] 未找到。(查看: /var/www/html/project/laravel/laravel/resources/views/page.blade.php)

master.blade.php 在 page.blade.php 旁边,两者都在资源/视图中

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

出了什么问题?我在this tutorial.工作

【问题讨论】:

  • 这个文件夹中有layouts文件夹和master文件吗?
  • 不,它们是相邻的。我放入了一个布局文件夹,现在出现任何错误,但 $name 变量没有得到任何值。

标签: php laravel laravel-5


【解决方案1】:

试试

@extends('master')

它们都位于您所说的views 根目录下。或者创建一个名为layouts 的目录并将master.blade.php 放入其中。

更新 在您希望“注入”contentmaster.blade.php 中,执行以下操作:

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

@yield('title') 完全相同。

【讨论】:

  • 现在它加载了页面,但是 $name 变量没有任何值。 (在教程中,他们在路线中添加了一个值 (Route::get('blade', function () { return view('page',array('name' => 'Test'));});)
  • 然后像他们一样添加值,$name 就会出现。
  • 我添加了它“Route::get('blade', function () { return view('page',array('name' => 'Anonymous'));});”教程说在这种情况下应该出现匿名这个词
  • 好的,我们很清楚,您现在所问的与您的原始答案和修复它的解决方案无关,但我提供了对我的原始答案的更新,这将有助于您第二个问题。如果有帮助,请标记答案。 :) 谢谢
【解决方案2】:

当您使用@extends('layouts.master') 时,表示您的视图在resources/views/layouts 目录下搜索master 布局。

所以请确保master 布局存在于resources/views/layouts 目录下。

【讨论】:

    猜你喜欢
    • 2019-09-11
    • 2018-05-03
    • 2020-08-22
    • 2016-11-14
    • 2021-03-21
    • 2019-10-20
    • 2019-08-10
    • 2021-02-27
    • 2021-07-13
    相关资源
    最近更新 更多