分享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学习笔记 PHP面向对象的程序设计
Jun 13 PHP
PHP添加Xdebug扩展的方法
Feb 12 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
php处理json格式数据经典案例总结
May 19 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
PHP defined()函数的使用图文详解
Jul 20 PHP
PHP数组基本用法与知识点总结
Jun 02 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
javascript this用法小结
2008/12/19 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python的Django框架使用入门指引
2015/04/15 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
项目副经理岗位职责
2013/12/30 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS