Laravel Blade模板引擎

Laravel Blade模板引擎

Blade 是 Laravel 提供的一个既简单又强大的模板引擎。和其他流行的 PHP 模板引擎不一样,Blade 并不限制你在视图中使用原生 PHP 代码。所有 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来,除非它被修改,否则不会重新编译,这就意味着 Blade 基本上不会给你的应用增加任何额外负担。Blade 视图文件使用 .blade.php 扩展名,一般被存放在 resources/views 目录。

模板继承

定义页面布局
Blade两大优点就是模板继承和区块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- 文件保存于 resources/views/layouts/app.blade.php -->
<html>
<head>
<title>应用程序名称 - @yield('title')</title>
</head>
<body>
@section('sidebar')
这是 master 的侧边栏。
@show

<div class="container">
@yield('content')
</div>
</body>
</html>

blade模板的文件必须以.blade.php为结尾。
如上所示,这是HTML语法,里面包括了@section和@yield命令,@section的语义就是这是定义了一个视图区域,而@yield命令是指用来显示指令内容的。

接下来我们写一个继承布局页面

继承页面布局
当定义子页面的时候,我们可以用Blade模板的extends指令来继承页面,这时候我们就可以用@section指令来注入继承页面的@section区域内容,而@yeild指令则用来注入继承页面指定的@yeild的区域。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- Stored in resources/views/child.blade.php -->

@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
@@parent

<p>This is appended to the master sidebar.</p>
@endsection

@section('content')
<p>This is my body content.</p>
@endsection

如上所示,siderbar区块中的@@parent指令会追加继承页面原有的内容,如果不使用就会覆盖该布局中的内容。

文章目录
,
//