分享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 相关文章推荐
第五节--克隆
Nov 16 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
PHP中的Streams详细介绍
Nov 12 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php统计数组元素个数的方法
Jul 02 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 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实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PDO::getAttribute讲解
2019/01/28 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Django封装交互接口代码
2020/07/12 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
应届毕业生的个人自我鉴定
2013/10/24 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
政治思想表现评语
2014/05/04 职场文书
产品生产计划书
2014/05/07 职场文书
介绍信模板
2015/01/31 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
Python采集股票数据并制作可视化柱状图
2022/04/04 Python