如何通过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生成静态HTML速度快类库
Mar 18 PHP
drupal 代码实现URL重写
May 04 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
php微信开发之关键词回复功能
Jun 13 PHP
php实现的数组转xml案例分析
Sep 28 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 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
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
python滑块验证码的破解实现
2019/11/10 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
学年自我鉴定范文
2013/10/01 职场文书
运动会领导邀请函
2014/02/05 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
晚归检讨书
2014/02/19 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
体现团队精神的口号
2014/06/06 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers