【问题标题】:how to get the @layout functionality of laravel working?如何让 laravel 的 @layout 功能正常工作?
【发布时间】:2013-01-06 12:42:42
【问题描述】:

我是 laravel 的新手,正在尝试学习 BLADE,但有一个问题让我很震惊。 我有一个

index.blade.php

@layout('master')

我也有一个

master.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Laravel: A Framework For Web Artisans</title>
<meta name="viewport" content="width=device-width">

</head>
<body>
hi from body
</body>
</html>

问题是,当我尝试调用 index.blade.php 时,它会给我一个 说错了

Unhandled Exception
Message:

View [master] doesn't exist.

Location:

C:\xampp\htdocs\laravel-laravel2\laravel\view.php on line 170

Stack Trace:

#0 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(107): Laravel\View->path('master')
#1 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(218): Laravel\View-                                >__construct('master', Array)
#2 C:\xampp\htdocs\laravel-laravel2\laravel\helpers.php(526): Laravel\View::make('master', Array)
#3 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(386) : eval()'d code(2): view('master')
#4 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(386): eval()
#5 C:\xampp\htdocs\laravel-laravel2\laravel\blade.php(71): Laravel\View->get()
#6 [internal function]: Laravel\Blade::Laravel\{closure}(Object(Laravel\View))
#7 C:\xampp\htdocs\laravel-laravel2\laravel\event.php(199): call_user_func_array(Object(Closure), Array)
#8 C:\xampp\htdocs\laravel-laravel2\laravel\event.php(138): Laravel\Event::fire('laravel.view.en...', Array, true)
#9 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(348): Laravel\Event::until('laravel.view.en...', Array)
#10 C:\xampp\htdocs\laravel-laravel2\laravel\view.php(590): Laravel\View->render()
#11 C:\xampp\htdocs\laravel-laravel2\laravel\response.php(268): Laravel\View->__toString()
#12 C:\xampp\htdocs\laravel-laravel2\laravel\laravel.php(180): Laravel\Response->render()
#13 C:\xampp\htdocs\laravel-laravel2\public\index.php(34): require('C:\xampp\htdocs...')
#14 {main}

【问题讨论】:

  • 请也发布控制器代码。
  • @dhpratik,我遇到了同样的问题。你设法解决了这个问题吗?你是怎么做到的? --edit-- 我发现NetBeans没有在我创建的文件中添加“.php”扩展名!!!

标签: layout view laravel blade


【解决方案1】:

我遇到了同样的问题。这可能是您的错误,也可能取决于您的环境。无论哪种方式,请尝试以下三件事:

  • @layout('master') 放在您的 php 文件的顶部 - 没有白色 空间。

  • 确保您的主视图标记为 master.blade.php - 否 大写。

  • 确保 master.blade.php 在应用程序/视图中

注意:如果您的主视图位于不同的文件夹中,例如application/views/some_folder 正确的调用方式是@layout('some_folder.master')

【讨论】:

  • 重要提示: @layout 调用必须始终位于文件的第一行,没有前导空格或换行符。 (来自the docs
  • 好吧,我已经按照你说的做了,但它也给出了同样的错误。
  • master.blade.php 保存在哪里?它应该在应用程序/视图中
  • 那是你的问题。如果它在家里,你必须把@layout('home.master')。要使 @layout('master') 工作,它需要直接位于 /views 目录中
【解决方案2】:

使用 @extends('master') 而不是 @layout('master')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    相关资源
    最近更新 更多