分享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 相关文章推荐
PHP4在Windows2000下的安装
Oct 09 PHP
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
PHP编码规范的深入探讨
Jun 06 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
php加密解密实用类分享
Jan 07 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 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
php安全配置 如何配置使其更安全
2011/12/16 PHP
php ci框架验证码实例分析
2013/06/26 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
Yii框架登录流程分析
2014/12/03 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Python函数返回不定数量的值方法
2019/01/22 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
python中def是做什么的
2020/06/10 Python
python实现mean-shift聚类算法
2020/06/10 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
班班通校本培训方案
2014/03/12 职场文书
春季防火方案
2014/05/10 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
创先争优宣传标语
2014/10/08 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python