laravel 实现向公共模板中传值 (view composer)


Posted in PHP onOctober 22, 2019

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里这么写

<?php

namespace 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);
  });

以上这篇laravel 实现向公共模板中传值 (view composer)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
测试PHP连接MYSQL成功与否的代码
Aug 16 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
分享PHP计算两个日期相差天数的代码
Dec 23 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
PHP调用其他文件中的类
Apr 02 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 #PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 #PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 #PHP
laravel orm 关联条件查询代码
Oct 21 #PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 #PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 #PHP
Laravel ORM 数据model操作教程
Oct 21 #PHP
You might like
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
JS实现简易日历效果
2021/01/25 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python 多线程实例详解
2017/03/25 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
百年校庆节目主持词
2014/03/27 职场文书
项目建议书模板
2014/05/12 职场文书
2014年采购员工作总结
2014/11/18 职场文书
社区好人好事材料
2014/12/26 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
公开致歉信
2019/06/24 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书