如何通过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中利用XML技术构造远程服务(上)
Oct 09 PHP
针对初学PHP者的疑难问答(2)
Oct 09 PHP
模板引擎Smarty深入浅出介绍
Dec 06 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
php生成扇形比例图实例
Nov 06 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
PHP rmdir()函数的用法总结
Jul 02 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 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检测文件编码的方法示例
2014/04/25 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
js继承的实现代码
2010/08/05 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Python中pillow知识点学习
2018/04/30 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
Python面向对象进阶学习
2019/05/21 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
拔河比赛口号
2014/06/10 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
MySQL新手入门进阶语句汇总
2022/09/23 MySQL