分享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 相关文章推荐
编译问题
Oct 09 PHP
PHP新手上路(十二)
Oct 09 PHP
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php 静态变量的初始化
Nov 15 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
PHP7 弃用功能
2021/03/09 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
JavaScript Canvas实现验证码
2020/08/02 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
Python数据类型详解(四)字典:dict
2016/05/12 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python从零开始创建区块链
2018/03/06 Python
Python2与Python3的区别实例总结
2019/04/17 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
python如何变换环境
2020/07/21 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
先进德育工作者事迹材料
2014/01/24 职场文书
Python如何配置环境变量详解
2021/05/18 Python
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js