3 回答
TA贡献1817条经验 获得超6个赞
这不是模板的工作方式。您必须在 return 语句中引用子模板。因为@extends在这个子模板中,Laravel 知道使用提到的主布局。所以你的退货声明应该是这样的:
return view('header');
如果您只想在每个页面上显示页眉,则无需在页眉中扩展主布局,只需在主布局中包含页眉部分即可。
<body>
<div class="container-fluid">
<h1>Site Index</h1>
@include('header')
</div>
</body>
TA贡献1862条经验 获得超7个赞
If you want to show content of section('header') then you must return header view like
Route::get('/', function () {
return view('header');
});
this is because contents are in header view and you have been extending layout.index
so if you return layout.index view you will not see content of section('header')
TA贡献1891条经验 获得超3个赞
现在我明白了刀片模板引擎如何工作得更好一点,以及我是如何做错的。只是为了澄清其他像我一样感到困惑并遇到这个线程的人:
当您通过 Web 路由重定向到视图时,它必须是从布局母版扩展的子级。
路线/ web.php
Route::get('/', function () {
return view('index');
});
然后将默认显示主文件中的 html 及其我们正在“查看”的内容
视图/布局/master.blade.php
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>@yield('title', 'default title if unspecified')</title>
</head>
<body>
<h1>Master Header</h1>
@yield('content')
</body>
</html>
要处理页面的内容,然后使用 @section('content') 方法处理它的索引视图。
意见/index.blade.php
@extends('layouts.master')
@section('title', 'Changing the default title')
@section('content')
<p>content displayed</p>
@endsection
我希望这对其他人有帮助。
- 3 回答
- 0 关注
- 267 浏览
添加回答
举报