3 回答
TA贡献1876条经验 获得超7个赞
问题: 您的刀片存在一些问题。
每个开始
@section
标签都需要一个结束@endsection
标签。标签部分应该包含您想要在其间显示的所有内容。
您不需要添加整个内容,
<html> etc.
只需添加必要的代码即可我认为内容应该是收益,因为您可能想在那里插入其他页面的内容。
我还认为您很困惑@include
,@yield
如果您想外包页眉和页脚,您可以简单地 @include('yourFolder/footer') 并插入代码
解决方案:
更改
@yield
为@include
更改
@section
为@yield('content')
例子:
文件名为:header.blade.php
<div class="header">
<center> Layout Header Master page </center>
</div>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Master Page</title>
</head>
<body>
<div>
@include('header')
<div class="content">
@yield('content')
</div>
@include('footer')
</div>
</body>
</html>
之后您可以创建一个新视图:example.blade.php
@extends('layout.app')
@section('content')
//put your content here
@endsection
TA贡献1794条经验 获得超8个赞
header.blade.php(只需使用代码删除其他)
@section('header')
<center> Layout Header Master page </center>
@endsection
footer.blade.php(只需使用代码删除其他)
@section('footer')
<center> Layout Footer Master page </center>
@endsection
应用程序.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Master Page</title>
</head>
<body>
<div>
<div class="header">
@include('header')
</div>
<div class="content">
@yield('content')
</div>
<div class="footer">
@include('footer')
</div>
</div>
</body>
</html>
学生控制器.php
public function viewmasterpage()
{
return view('layouts.app');
}
TA贡献1828条经验 获得超3个赞
您误解了 @extends、@yield 和 @section 指令。
@extends 使用另一个刀片文件,并用它定义的 @sections 填充 @yield 指令。
说你有app.blade.php
<html>
<body>
@yield('header')
@yield('content')
@yield('footer')
</body>
</html>
那么你可以说landing.blade.php
@extends('app')
@section('header')
<header>I am the header for the landing page!</header>
@endsection
@section('content')
<div>I am the content for the landing page!</div>
@endsection
@section('footer')
<header>I am the footer for the landing page!</footer>
@endsection
- 3 回答
- 0 关注
- 123 浏览
添加回答
举报