分享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控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
PHP基础知识回顾
Aug 16 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php操作xml入门之xml标签的属性分析
Jan 23 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
PHP实现带进度条的Ajax文件上传功能示例
Jul 02 PHP
PHP实现随机发放扑克牌
Apr 21 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/06/09 PHP
php设置编码格式的方法
2013/03/05 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
python调用java的Webservice示例
2014/03/10 Python
python实现的系统实用log类实例
2015/06/30 Python
Apache如何部署django项目
2017/05/21 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
SQL中where和having的区别
2012/06/17 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
财务经理的岗位职责
2013/12/17 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
借款协议书
2014/04/12 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
Python实现简单的猜单词
2021/06/15 Python
JavaScript流程控制(分支)
2021/12/06 Javascript