分享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实现文件上传二法
Oct 09 PHP
多文件上传的例子
Oct 09 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
PHP中JSON的应用技巧
Oct 10 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 PHP
laravel通用化的CURD的实现
Dec 13 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
使用console进行性能测试
2015/04/27 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python使用KNN算法识别手写数字
2019/04/25 Python
python进行参数传递的方法
2020/05/12 Python
python支持多继承吗
2020/06/19 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
安踏官方商城:anta.cn
2019/12/16 全球购物
自荐信的两点禁忌
2013/10/30 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
银行服务理念口号
2015/12/25 职场文书