如何通过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验证码(支持中文)
Feb 14 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
PHP 上传文件的方法(类)
Jul 30 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
PHP静态文件生成类实例
Nov 29 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
微信自定义分享php代码分析
Nov 24 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文件上传原理简单分析
2011/05/29 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript学习网址备忘
2007/05/29 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python+mysql实现简单的web程序
2014/09/11 Python
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
python协程之动态添加任务的方法
2019/02/19 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python随机模块random使用方法详解
2020/02/14 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
手机银行营销方案
2014/03/14 职场文书
员工安全承诺书
2014/05/22 职场文书
留学生求职信
2014/06/03 职场文书
创文明城市标语
2014/06/16 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
2014年民警工作总结
2014/11/25 职场文书
感谢信范文大全
2015/01/23 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android