如何通过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将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
标准PHP的AES加密算法类
Mar 12 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
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
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
ionic3 懒加载
2017/08/16 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
python面试题小结附答案实例代码
2019/04/11 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
喜之郎果冻广告词
2014/03/20 职场文书
超市开店计划书
2014/09/15 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL