分享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中的cookie
Nov 26 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
PHP Stream_*系列函数
Aug 01 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
php页面缓存方法小结
Jan 10 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
PHP MSSQL 分页实例
Apr 13 PHP
yii2简单使用less代替css示例
Mar 10 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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.NET的入门教程
2006/10/09 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
js实现微博发布小功能
2017/01/12 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python求解汉诺塔游戏
2020/07/09 Python
python中pivot()函数基础知识点
2021/01/03 Python
大学生个人自我鉴定
2013/12/03 职场文书
实习生评语
2014/04/26 职场文书
倡议书格式模板
2014/05/13 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
学校隐患排查制度
2015/08/05 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书