布局继承
布局是一个视图文件,由其他视图扩展,这些视图将代码块注入其父级。例如:
parent.blade.php:
<html>
<head>
<style type='text/css'>
@yield('styling')
</style>
</head>
<body>
<div class='main'>
@yield('main-content')
</div>
</body>
</html>
child.blade.php:
@extends('parent')
@section('styling')
.main {
color: red;
}
@stop
@section('main-content')
This is child page!
@stop
otherpage.blade.php:
@extends('parent')
@section('styling')
.main {
color: blue;
}
@stop
@section('main-content')
This is another page!
@stop
在这里,你可以看到两个示例子页面,每个子页面都扩展父页面子页面定义了 @section
,它在适当的 @yield
语句中插入父节点。
因此,View::make('child')
呈现的视图将以红色显示 这是子页面!,而 View::make('otherpage')
将生成相同的 html,除了文本这是另一页!,而不是蓝色。
通常将视图文件分开,例如具有专门用于布局文件的布局文件夹,以及用于各种特定个别视图的单独文件夹。
布局旨在应用应出现在每个页面上的代码,例如添加侧边栏或标题,而不必在每个单独的视图中写出所有 html 样板。
视图可以反复进行扩展 -即第 3 页能 @extend('page2')
,和第 2 页可以 @extend('page1')
。
extend 命令使用与 View::make
和 @include
相同的语法,因此文件 layouts/main/page.blade.php
作为 layouts.main.page
访问。