布局继承

布局是一个视图文件,由其他视图扩展,这些视图将代码块注入其父级。例如:

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 访问。