运行应用程序时出现以下错误,
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看起来像,
<!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="http://127.0.0.1:8000/css/style.css" rel="stylesheet">
</head>
答案 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将模板注入视图中。