分享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 相关文章推荐
javascript,php获取函数参数对象的代码
Feb 03 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
PHP PDOStatement::fetchAll讲解
Jan 31 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
js 操作select与option(示例讲解)
2013/12/20 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JS简单计算器实例
2015/01/20 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
深入理解NumPy简明教程---数组2
2016/12/17 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
校本教研工作方案
2014/01/14 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
群众路线对照检查材料
2014/09/22 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书