前言
使用 laravel 框架,总会使用到其模板引擎 blade。 该引擎的最大优点就是继承和切片。
一个网站通常首部(header),底部(footer)都是一样的。如果每个页面,都通过复制粘贴来实现共通性,就会很累赘。
相同代码的复用,在其他框架中也会有。而blade使用的是继承以及include。
使用
既然是继承。那就会有父模板。父模板通过两种方式来让子模板灵活的定义自己的内容。
- 父模板中,使用
@yield('content')
进行标识。相当于占了一个坑。在子模板中,先使用@extends('parent_filename')
先继承父模板,再使用@section('content')
开始定义的内容,以@endsection
结束定义的内容。也就是在这两个标记之间的内容就是子模板定义的。
@yield
可以定义默认值,如果子模板不继承的话就会显示该默认值。
<title>@yield('title', '首页')</title>
- 父模板中,使用
@section('flag-name')
定义父模板内容的开始,以@show
结束父模板内容的结束。子模板的使用方法同上。不同点是,子模板可以选择继承父模板定义块中的内容。如果想使用就添加@parent
。 如:
@section('sidebar')
$parent
……
……
自定义的内容
@endsection
结束位置,既可以用 @endsection
,也可以使用 @stop
。不同的是,@endsection
之后,当前模板还可以被模板继承,而@stop
则终止继承,不再被继承。
laravel规范
https://fsdhub.com/books/laravel-specification
参考
http://laravelacademy.org/post/5919.html
http://blog.csdn.net/u011542261/article/details/52624247