这里有两张方法向模板传数据,一种是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>