分享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变量范围介绍
Oct 15 PHP
thinkphp 多表 事务详解
Jun 17 PHP
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
php缓存技术详细总结
Aug 07 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
php异常处理方法实例汇总
Jun 24 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
中止javascript执行的方法
2014/02/14 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
js如何判断输入字符串长度
2015/12/16 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
JS实现图片切换特效
2019/12/23 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
Python 类的继承实例详解
2017/03/25 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
大学生毕业自荐信
2013/10/10 职场文书
自荐信格式技巧有哪些呢
2013/11/19 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
监守自盗观后感
2015/06/10 职场文书