如何通过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 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
php变量作用域的深入解析
Jun 03 PHP
PHP字符串的连接的简单实例
Dec 30 PHP
php加密解密实用类分享
Jan 07 PHP
PHP检测用户语言的方法
Jun 15 PHP
PHP递归创建多级目录
Nov 05 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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巧获服务器端信息
2006/12/06 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
openPNE常用方法分享
2011/11/29 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
jquery maxlength使用说明
2011/09/09 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
python代码能做成软件吗
2020/07/24 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
大学生入党推荐书范文
2014/05/17 职场文书
投标诚信承诺书
2014/05/26 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
python_tkinter事件类型详情
2022/03/20 Python