这里有两张方法向模板传数据,一种是include,另外一种是yield标记方法
布局视图:
<!-- 文件保存于 resources/views/layouts/home.blade.php --><html>
<head>
<title>应用程序名称 - @yield('title')</title>
</head>
<body>
@section('sidebar')
这是主要的侧边栏。
@show
<div class="container">
@yield('content')
</div>
</body>
</html>其中在布局视图中可以用yield和section两种方式标记,但是section标记必须要@show结尾,在主布局视图中用section方式标记一般是在它中间还有其他的内容,而这个内容在子视图中必须要用parent标记来继承,否则将被覆盖
子视图:
<!-- 保存于 resources/views/home/index.blade.php -->
@extends('layouts.home')
@section('title', '页面标题')
@section('sidebar')
@parent
<p>这边会附加在主要的侧边栏。</p>
@endsection
@section('content')
<p>这是我的主要内容。</p>
@endsection而include方式导入公共的部分刚好是跟上面的方法是相对的,标记方法是先写好整个页面,然后调用子视图继承布局视图,标记哪个就替换哪个。而include方法就是我们常用的那种,先把公共的部分分离出来,然后到具体的页面,缺哪个部分就加上哪个部分。如下所示,先把header.blade.php和footer.blade.php文件保存到resouces/views/common文件夹中
<!-- 保存于 resources/views/common/header.blade.php -->
<div class="header"> 我是头部部分--{{$page}}</div>
<!-- 保存于 resources/views/common/footer.blade.php -->
<div class="footer"> 我是尾部部分</div>
<!-- 下面是news文件 resources/views/news.blade.php 的代码-->
<head>
<title>雷小天个人博客</title>
</head>
<body>
include('common.header',['page'=>'文章页'])
<div class="middle"> 我是中间部分</div>
include('common.footer')
</body>
</html>