分享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 相关文章推荐
2.PHP入门
Oct 09 PHP
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
PHP 开发工具
Dec 06 PHP
phpfans留言版用到的install.php
Jan 04 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
php strcmp使用说明
Apr 22 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 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中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
js实现楼层导航功能
2017/02/23 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
在Django的模板中使用认证数据的方法
2015/07/23 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python实现俄罗斯方块
2018/06/26 Python
flask框架视图函数用法示例
2018/07/19 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
基于python实现把图片转换成素描
2019/11/13 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
求职信范文英文版
2014/01/05 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
先进党组织事迹材料
2014/12/26 职场文书
2015年团支书工作总结
2015/04/03 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript