Laravel学习笔记基础系列--(十四)Laravel Blade模板语法的使用
作者:温新
时间:2021-06-27
hi,我是温新,一名PHPer
上篇文件介绍了两个重要的特性:模板布局与组件/插槽的使用。关于Blade
模板引擎提供了非常多的好用的指令。本篇文件就来学习记录相关指令的使用。
模板包含
包含模板
指令:@include(文件名)
模板包含,抽离公共部分代码。如layout.blade.php
中的header、footers等可以抽离出来,下现以抽离header为案例进行演示。
第一步:抽离header
文件:layouts.blade.php
复制并删除hdaer
区块代码
第二步:新建_header.blade.php
文件位置:layouts/_header.blade.php
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@section</span>(<span style="box-sizing: border-box;color: rgb(170, 17, 17)">'header'</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">头部</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@show</span></span>
第三步:包含_header
文件位置:layouts/layout.blade.php
@include('layouts._header')
包含模板的数据传递
@include('layouts._header',['name'=>'lisi'])
视图文件中使用
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(170, 85, 0)">// _header.blade.php</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@section</span>(<span style="box-sizing: border-box;color: rgb(170, 17, 17)">'header'</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">头部</span>{{<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$name</span>}}</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@show</span></span>
若要显示,则需要在test视图使用使用@parent指令
流程控制语句
修改DemoController中的test方法,用于简单测试
return view('demo.test')->with('id',10);
接下的操作都在test.blade.php
文件中完成
if语句
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@if</span> (<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$id</span> <span style="box-sizing: border-box;color: rgb(152, 26, 26)"><</span> <span style="box-sizing: border-box;color: rgb(17, 102, 68)">10</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">确实小于</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@elseif</span> (<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$id</span> <span style="box-sizing: border-box;color: rgb(152, 26, 26)">=</span> <span style="box-sizing: border-box;color: rgb(17, 102, 68)">10</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">恭喜你答对了</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@elseif</span> (<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$id</span> <span style="box-sizing: border-box;color: rgb(152, 26, 26)">></span> <span style="box-sizing: border-box;color: rgb(17, 102, 68)">10</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">大于了</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@else</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">飞到外星去了</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@endif</span></span>
switch
<span style="box-sizing: border-box;padding-right: 0.1px">@switch($id)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> @case(1)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 我是1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> @break</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> @case(10)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 我是10,恭喜你找到了</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> @break</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> @default</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 啥也不是</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">@endswitch</span>
循环
<span style="box-sizing: border-box;padding-right: 0.1px">@for($i = 0; $i <span class="cm-tag cm-bracket" style="box-sizing: border-box;color: rgb(17, 119, 0)"><</span> <span style="box-sizing: border-box;color: rgb(17, 119, 0)">$id;</span> <span style="box-sizing: border-box;color: rgb(0, 0, 204)">$i++)</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 204)">{{</span> <span style="box-sizing: border-box;color: rgb(0, 0, 204)">$i</span> <span style="box-sizing: border-box;color: rgb(0, 0, 204)">}}</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 204)">@endfor</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 204)">while($id</span> <span class="cm-tag cm-error" style="box-sizing: border-box;color: rgb(17, 119, 0)">< 15)</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> {{ $id++ }}</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">@endwhile</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">// foreach循环就不演示了,同PHP foreach</span>
unless-非操作
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(170, 85, 0)">// 因为等于10,所以不显示</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@unless</span>(<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$id</span> <span style="box-sizing: border-box;color: rgb(152, 26, 26)">==</span> <span style="box-sizing: border-box;color: rgb(17, 102, 68)">10</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">得不等于10才显示哦</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@endunless</span></span>
isset-检测变量是否存在
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(170, 85, 0)">// 存在将会被打印出来</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@isset</span>(<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$id</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">存在</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@endisset</span></span>
empty
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(170, 85, 0)">// 因为$ids不存在,所以显示了</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@empty</span>(<span style="box-sizing: border-box;color: rgb(0, 85, 170)">$ids</span>)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">为空</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(0, 0, 0)">@endempty</span></span>
判断用户是否登录
<span style="box-sizing: border-box;padding-right: 0.1px">@auth</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 已登录</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">@endauth</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">@guest</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 未登录</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">@endguest</span>
blade执行还有很多,没有记录的请参考文档。
我是温新
每天进步一点点,就一点点
请登录后再评论