分享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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php 引用(&)详解
Nov 20 PHP
php empty函数判断mysql表单是否为空
Apr 12 PHP
flash用php连接数据库的代码
Apr 21 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 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生成月历代码
2007/06/14 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
js 动态文字滚动的例子
2011/01/17 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
python中二维阵列的变换实例
2014/10/09 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python对文件操作知识汇总
2016/05/15 Python
python获取多线程及子线程的返回值
2017/11/15 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python configparser模块操作代码实例
2020/06/08 Python
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
《在家里》教后反思
2014/03/01 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
企业法人授权委托书
2014/09/25 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
五一放假通知怎么写
2015/08/18 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
python中print格式化输出的问题
2021/04/16 Python
redis实现排行榜功能
2021/05/24 Redis