如何通过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 相关文章推荐
杏林同学录(九)
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
cmd下运行php脚本
Nov 25 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
Oct 14 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
弹出模态框modal的实现方法及实例
Sep 19 #PHP
PHP 进度条函数的简单实例
Sep 19 #PHP
You might like
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php数字转汉字代码(算法)
2011/10/08 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
鼠标事件延时切换插件
2011/03/12 Javascript
浅说js变量
2011/05/25 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
Python中一些深不见底的“坑”
2019/06/12 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python如何实现远程方法调用
2020/08/07 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
物流专业毕业生推荐信范文
2013/11/18 职场文书
单位门卫岗位职责
2013/12/20 职场文书
小班下学期评语
2014/05/04 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Python几种酷炫的进度条的方式
2022/04/11 Python