分享5个非常有用的Laravel Blade指令


Posted in PHP onMay 30, 2018

简介

Blade是Laravel提供的一个非常简单、强大的模板引擎,不同于其他流行的PHP模板引擎,Blade在视图中并不约束你使用PHP原生代码。所有的Blade视图都会被编译成原生PHP代码并缓存起来直到被修改,这意味着对应用的性能而言Blade基本上是零开销。Blade视图文件使用.blade.php文件扩展并存放在resources/views目录下。

分享5个非常有用的Laravel Blade指令

接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。

废话少说,让我们开始吧。

1. 检测用户是否认证

你可以通过验证用户是否为空来检测其是否认证:

@if(auth()->user())
 // 用户已认证
@endif

然而,Laravel 自带的 Blade 命令可以更简洁地实现相同的功能:

@auth
 // 用户已认证
@endauth

2. 检测用户是否为访客

与认证相反,我们可以用 auth 辅助函数的 guest() 方法来检测用户是否为访客:

@if(auth()->guest())
 // 用户未认证
@endif

不过 Laravel 也为此提供了 @guest 命令:

@guest
 // 用户未认证
@endguest

我们也可以使用 else 语句来组合这两个命令:

@guest
 // 用户未认证
@else
 // 用户已认证
@endguest

3. 如果第一个视图存在则引入,否则引入第二个

构建多主题站点可能会有一个文件如果存在就引入,否则就引入另一个的需要,你可以简单地使用条件判断来实现:

@if(view()->exists('first-view-name'))
 @include('first-view-name')
@else
 @include('second-view-name')
@endif

不过还是有一个更简洁直观的命令来做这件事:

@includeFirst(['first-view-name', 'second-view-name']);

4. 根据条件引入视图

当你只想在一定逻辑的基础上(如:一个已通过认证的用户)添加一些内容的时候,根据条件引入视图就非常有用了。

你可以使用 @if 条件来这样写:

@if($post->hasComments())
 @include('posts.comments')
@endif

我们可以只用一行命令 @includeWhen 来做到:

@includeWhen($post->hasComments(), 'posts.comments');

5. 引入一个存在的视图

如果你有自定义主题系统或者你需要动态地创建 Blade 视图,那么检查文件是否存在就是必须要做的。

可以在辅助函数 view() 上调用 exists 方法:

@if(view()->exists('view-name'))
 @include('view-name')
@endif

也可以使用 Blade 命令 includeIf 来处理:

@includeIf('view-name')

你可以通过 Blade 官方文档 了解更多实用的技巧来优化你 Laravel 项目里的前端模板。

重构快乐!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP 面向对象 final类与final方法
May 05 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
PHP检测用户语言的方法
Jun 15 PHP
php单一接口的实现方法
Jun 20 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
php实现微信支付之企业付款
May 30 #PHP
ThinkPHP5框架缓存查询操作分析
May 30 #PHP
PHP实现通过CURL上传文件功能示例
May 30 #PHP
php实现微信支付之现金红包
May 30 #PHP
php微信支付之公众号支付功能
May 30 #PHP
php实现微信原生支付(扫码支付)功能
May 30 #PHP
php实现支付宝当面付(扫码支付)功能
May 30 #PHP
You might like
php4的session功能评述(三)
2006/10/09 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
js 幻灯片的实现
2011/12/06 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
简单介绍Python中的JSON使用
2015/04/28 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
三方股份合作协议书
2014/10/13 职场文书
违纪检讨书
2015/01/27 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python