blade官方文档: https://laravel.com/docs/5.8/blade
@verbatim
如果输出中要包含 {{ … }}; (通常为由js解析的模板,如vue),则可以使用@前缀避免php进行翻译,如:
@{{name}}
最终输出为
{{name}}
正好可以被js当做模板使用;
但是,如果一大段都是js的模板(没有一点点需要php替换的变量)呢?每个都前面添加 @ 有些啰嗦,于是可以使用
@verbatim
相当于给这个部分统一添加了@前缀
关于:
1 |
<span class="token punctuation">{</span><span class="token operator">!</span><span class="token operator">!</span> <span class="token variable">$name</span> <span class="token operator">!</span><span class="token operator">!</span><span class="token punctuation">}</span> |
默认情况下: {{$name}}中的$name 是被htmlspecialchars 处理的,如果不想被处理,可以使用 {!! $name !!} 标记
组件别名
可以在AppServiceProvider.php 中指定组件的别名,方便使用组件:
1 2 3 |
use Illuminate\Support\Facades\Blade; Blade::component('components.alert', 'alert'); |
则,就可以在模板中使用:
1 2 3 |
@alert ... @endalert |
来替代
1 2 3 |
@component('alert') ... @endcomponent |
输出json
1 |
<example-component :some-prop='@json($array)'></example-component> |
不过这里一定要使用单引号
通过 @auth 直接判断是否已登录,未登录就是@guest
还可以指定要检查的guard,如: @auth(“admin”)
@php
通过@php直接嵌入一块儿PHP代码
关于组件和子视图的比较
自定义指令
自定义if语句