如何通过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 isset()与empty()的使用区别详解
Aug 29 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
PHP Reflection API详解
May 12 PHP
php中关于socket的系列函数总结
May 18 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php Ubb代码编辑器函数代码
2012/07/05 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php数组分页实现方法
2016/04/30 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
vue组件的写法汇总
2018/04/12 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
python创建文件备份的脚本
2018/09/11 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
python如何调用java类
2020/07/05 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python中关于数据类型的学习笔记
2020/07/19 Python
python openCV自制绘画板
2020/10/27 Python
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
考试退步检讨书
2014/01/15 职场文书
员工培训邀请函
2014/02/02 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
郭明义观后感
2015/06/08 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS