Laravel学习笔记基础系列--(十四)Laravel Blade模板语法的使用

作者: 温新

分类: 【Laravel】

阅读: 1690

时间: 2021-07-12 16:17:21

作者:温新

时间: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执行还有很多,没有记录的请参考文档。

我是温新

每天进步一点点,就一点点

请登录后再评论