未定义的变量:header(查看:C:\ blog \ resources \ views \ pages \ welcome.blade.php)

时间:2018-01-17 16:27:22

标签: laravel-5

运行应用程序时出现以下错误,

Undefined variable: header (View: C:\blog\resources\views\pages\welcome.blade.php)

我在Controller中的getIndex()函数:

public function getIndex(){
        \View::make('pages/welcome')->nest('header', 'layout.header');
        return view('pages/welcome');
    }

我的welcome.blade.php

{{ $header }}
<body>
....
</body>

我的_partial / header.blade.php,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Blog Template for Bootstrap</title>

    <!-- Bootstrap core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="{{ asset('css/style.css') }}" rel="stylesheet">
</head>

在得到答案后,html看起来像,

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
    &lt;meta name=&quot;description&quot; content=&quot;&quot;&gt;
    &lt;meta name=&quot;author&quot; content=&quot;&quot;&gt;
    &lt;link rel=&quot;icon&quot; href=&quot;../../favicon.ico&quot;&gt;

    &lt;title&gt;Blog Template for Bootstrap&lt;/title&gt;

    &lt;!-- Bootstrap core CSS --&gt;
    &lt;link href=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&gt;

    &lt;!-- Custom styles for this template --&gt;
    &lt;link href=&quot;http://127.0.0.1:8000/css/style.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;/head&gt;

1 个答案:

答案 0 :(得分:1)

您正在使用嵌套子视图创建视图,然后创建&amp;在没有嵌套子视图的情况下返回全新视图

public function getIndex(){
    \View::make('pages/welcome')->nest('header', 'layout.header');
    return view('pages/welcome');
}

应该是

public function getIndex(){
    return \View::make('pages/welcome')->nest('header', 'layout.header');
}

请注意,view()\View::make()的别名。

您可以使用{!! $header !!}来阻止HTML转义。

使用Laravel 5+开发,您应该使用Components and Slots将模板注入视图中。