分享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 相关文章推荐
优化使用mysql存储session的php代码
Jan 10 PHP
PHP 魔术函数使用说明
May 14 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
php操作redis数据库常见方法实例总结
Feb 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
php模板函数 正则实现代码
2012/10/15 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python sorted函数原理解析及练习
2020/02/10 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
干部培训自我鉴定
2014/01/22 职场文书
好好学习保证书
2015/02/26 职场文书
公司文体活动总结
2015/05/07 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
详解Vue3使用axios的配置教程
2022/04/29 Vue.js