Laravel向公共模板赋值方法总结


Posted in PHP onJune 25, 2019

开发过程中许多时候都会向公共模板赋值,比如顶部导航栏,页面底部等等,不可能在每个控制器中都赋值一遍。

Laravel 中解决办法如下: 修改

App\Providers\AppServiceProvider

在boot方法中添加

View()->composer('common.header',function ($view){ //common.header 对应Blade模板 $view->with('key', 'value'); });

也可以向所有模板中赋值

View()->share('key', 'value');

view composers 与视图有关,用在一个service provider 的boot()函数里,就是让一个view加载的时候,由于view composer的作用,去调用某个函数传个参啊啥的。

1,创建service provider

php artisan make:provider ComposerServiceProvider

再把ComposerServiceProvider加到config/app.php里面

2,写view composer

public function boot()  {    view()->composer(      'app', //模板名      'App\Http\ViewComposers\MovieComposer' //方法名或者类中的方法    );  }

意思是一旦加载app.blade.php,就执行App\Http\ViewComposers\MovieComposer里的composer函数(这里之所以执行composer函数是默认的),如果你想换一个就

view()->composer('app','App\Http\ViewComposers\MovieComposer@foobar'); //自己定义的方法

这里就执行foobar函数了

App\Http\ViewComposers\MovieComposer.php里这么写

<?phpnamespace App\Http\ViewComposers;use Illuminate\View\View;//**记得引入这个啊(因为在composer函数参数里使用了View类)**class MovieComposer{  public $movieList = [];  public function __construct()  {    $this->movieList = [      'Shawshank redemption',      'Forrest Gump',    ];  }  public function compose(View $view)  {    $view->with('latestMovie');  }}

3,其他 当所有模板都要,用*正则表达式

view()->composer('*', function (View $view) {  //logic goes here});

想要指定多个view使用,用数组包起来

view()->composer(['nav', 'footer'],'App\Http\ViewComposers\MovieComposer');或者 view()->composer(['admin.admin'], function ($view){      $column = $this->object_array(DB::table('column')->get());      foreach($column as $k=>$v){        $chid = explode(',',$v['childid']);        foreach($chid as $value){          $column[$k]['chname'][] = $this->object_array(DB::table('column_child')->where('id',$value)->first());        }      }      $view->with('columns',$column);    });
PHP 相关文章推荐
PHP调用三种数据库的方法(3)
Oct 09 PHP
一个简单实现多条件查询的例子
Oct 09 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
PHP实现的观察者模式实例
Jun 21 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 #PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 #PHP
提高Laravel应用性能方法详解
Jun 24 #PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 #PHP
PHP中的self关键字详解
Jun 23 #PHP
php面向对象程序设计入门教程
Jun 22 #PHP
You might like
PHP Document 代码注释规范
2009/04/13 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
在网页里看flash的trace数据的js类
2009/01/10 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
python黑魔法之编码转换
2016/01/25 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
python列表的增删改查实例代码
2018/01/30 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python类共享变量操作
2020/09/03 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
网络技术支持面试题
2013/04/22 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
自我评价的写作规则
2014/01/06 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
小学数学教研活动总结
2014/07/01 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书