Blade 是 Laravel 提供了一套模板引擎,别被它的名字吓到 ... 用起来其实很简单 ... Blade 是一套又灵活,又强大,又简单的模板引擎。
我们可以根据需要,去创建一些布局,在这些布局里面,可以把一个页面划分成几个部分,每个部分的内容都可以放在一个单独的文件里面。
我们可以重复去利用这些创建好的布局。下面通过几个演示,你应该可以更好的理解 Blade 模板。
打开 views ... movie 下面的 index.blade.php 这个文件 ...
这是我们之前创建的一个视图文件 ... 在这个文件里,除了显示主要内容以外,还有一些其它的东西,比如 html 声明,meta 标签等等 ...
这些内容很可能在其它类型的页面上也会用到,比如使用同样的样式表,或者脚本文件等等。
这样,我们就可以去创建一个布局。这样需要用到这个布局,用一行简单的代码就行了。
这个文件其实也是一个 blade 模板文件 ... 因为它的扩展名是 .blade.php ...
这里面的内容,可以认为是布局的一个区块,或者叫做一个区域 ... 所以,我们可以把它定义成一个区域 ...
输入一个 @section ... 然后在括号里,去给这个区域起个名字 ... 比如 content ... header .. footer .. sidebar 等等 ... 这里我们叫它 content ...
这个区域的结束,要用一个 @stop ...
@section('content')
<h1>movietalk</h1>
<p><?php echo $user; ?></p>
<p><?php echo $email; ?></p>
<p><?php echo $boxoffice; ?></p>
@stop
这样, 除了这个区域的内容以外,我们可以把其它的东西都放在布局里面 .. 剪切一下 ...
在这个区域视图里面,我们还要指定一个它要使用的布局文件 ... 这里需要用一个 @extends ... 然后在括号里指定这个布局文件的位置 ...
movie.layout.master .... 它的意思就是,去使用在 movie 目录下面的 layout 里面的 master.blade.php 这个布局文件 .... .blade.php 是 blade 模板文件的扩展名 ... 它前面的东西才是这个模板文件的名称 ... 这里只需要使用这个模板文件的名称 ...
下面,我们再去创建这个布局文件 ...
先在 movie 目录的下面,新建一个目录 ... 命名为 layout ... 在里面,再去创建一个布局文件 ... 命名为 master.blade.php ...
打开这个文件 ...
在这里,加上一些 HTML 代码 ... 这些代码应该是所有使用这个布局的视图都需要的代码 ...
<!doctype html>
<html lang="zh-hans">
<head>
<meta charset="UTF-8">
<title>movietalk</title>
</head>
<body>
</body>
</html>
你可以给这个布局文件添加需要的样式表,脚本文件 .. 可以定义它的样式 ... 设计布局等等 ...
然后在想要显示区块内容的地方 ... 使用一个 @yield .. 再去指定一下区块的名称就行了 ... 比如在这里我们可以去载入 content 这个区块的内容 .. 先给这个区块添加一个容器 ... 可以再加上个 css 类 .. 这样方便去给这块内容添加样式 ... @yield ... 在括号里,指定一下区块的名称 ...
<div class="page">
@yield('content')
</div>
保存 ... 再回到浏览器上去看一下 ...
这里,仍然可以正常显示之前的内容 ... 不过现在, 我们可以更灵活的去展示内容了。