分享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 flush()与ob_flush()的区别详解
Jun 03 PHP
php全角字符转换为半角函数
Feb 07 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
CI框架给视图添加动态数据
Dec 01 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php实现搜索类封装示例
Mar 31 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP类相关知识点实例总结
Sep 28 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
PHP中echo与print区别点整理
Mar 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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php中文验证码实现方法
2015/06/18 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python气泡提示与标签的实现
2020/04/01 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
十八届三中全会个人学习材料
2014/02/13 职场文书
学习决心书范文
2014/03/11 职场文书
财务人员担保书
2014/05/13 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
五好家庭申报材料
2014/12/20 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android