分享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 5.0对象模型深度探索之属性和方法
Mar 27 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
Apache中php.ini的设置方法
Feb 28 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
Laravel框架路由管理简单示例
May 07 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
PHP扩展类型及安装方式解析
Apr 27 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获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
javascript类型转换示例
2014/04/29 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
详解Python当中的字符串和编码
2015/04/25 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
工程部主管岗位职责
2013/11/17 职场文书
测量工程专业求职信
2014/02/24 职场文书
爽歪歪广告词
2014/03/20 职场文书
投标单位介绍信
2015/05/05 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
李强感恩观后感
2015/06/17 职场文书
python的html标准库
2022/04/29 Python