分享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 相关文章推荐
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
php实现短信发送代码
Jul 05 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
php compact 通过变量创建数组
Nov 15 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 PHP
php微信小程序解包过程实例详解
Mar 31 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
js对象的比较
2011/02/26 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python中如何打包用户自定义模块
2020/09/23 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
远程培训的心得体会
2014/09/01 职场文书
参观邀请函范文
2015/02/02 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js