如何通过View::first使用Laravel Blade的动态模板详解


Posted in PHP onSeptember 21, 2017

前言

本文主要给大家介绍了关于View::first使用Laravel Blade动态模板的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

如何通过View::first使用Laravel Blade的动态模板详解

当创建动态组件或者页面的时候,有时候我们想当自定义模版存在的时候展示它,否则展示默认的模版。

例如,当我们创建页面模块的时候,通常需要给“关于我们”和“联系我们”自定义模版(如展示照片或者联系表单),而“我们的服务”则可以使用默认模板。

我们可以通过一系列的 if 判断或者使用 view()->exists()  来判断自定义模板是否存在,然而,Laravel 5.5 为我们带来了一个更加优雅的方法来实现这个功能。

View::first 的使用

view()->first() 方法可以使我们把下面的代码

if (view()->exists('custom-template')) {
 return view('custom-template', $data);
}
 
return view('default-template', $data);

替换为更加简洁的版本:

return view()->first(
  ['custom-template', 'default-template'], $data
);

必须给这个方法的第一个参数传递一个数组,当第一个存在的时候,就将使用它。

当然,你可以传递任意个数的模版,你甚至还可以使用动态名称:

return view()->first([
  "pages/{$page->slug}",
  "pages/category-{$page->category->slug}",
  "pages/default-template"
], $data);

此外,你还可以通过 Facade 版本的这个功能:

\View::first($templates, $data)

这个动态选择模版的 Blade 方法是在 Laravel 5.5 中引入的,使得处理动态模版更加简洁,不需要额外的条件判断了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php公用函数列表[正则]
Feb 22 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
php构造函数实例讲解
Nov 13 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
php绘制一条直线的方法
Jan 24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
php阳历转农历优化版
Aug 08 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
详细解读php的命名空间(一)
Feb 21 PHP
基于Laravel实现的用户动态模块开发
Sep 21 #PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 #PHP
PHP判断json格式是否正确的实现代码
Sep 20 #PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 #PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 #PHP
PHP使用Nginx实现反向代理
Sep 20 #PHP
弹出模态框modal的实现方法及实例
Sep 19 #PHP
You might like
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
Python中基础的socket编程实战攻略
2016/06/01 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Python代码太长换行的实现
2019/07/05 Python
QML用PathView实现轮播图
2020/06/03 Python
Python如何操作docker redis过程解析
2020/08/10 Python
python如何实现DES加密
2020/09/21 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
温泉秘密:Onsen Secret
2020/07/06 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
期末总结的个人自我评价
2013/11/02 职场文书
房地产销售大学生自我评价分享
2013/11/11 职场文书
护理专科自荐书范文
2014/02/18 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
身边的榜样活动方案
2014/08/20 职场文书
相亲活动方案
2014/08/26 职场文书
入党介绍人意见范文
2015/06/01 职场文书
河童之夏观后感
2015/06/11 职场文书
高中体育课教学反思
2016/02/16 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android