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实现ping
Oct 09 PHP
discuz安全提问算法
Jun 06 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
php之curl设置超时实例
Nov 03 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
YII框架批量插入数据的方法
Mar 18 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
laravel 多图上传及图片的存储例子
Oct 14 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
python实现PCA降维的示例详解
2020/02/24 Python
python列表的逆序遍历实现
2020/04/20 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
c语言常见笔试题总结
2016/09/05 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
自我鉴定的范文
2013/10/03 职场文书
小学生期末评语
2014/04/21 职场文书
六一儿童节活动总结
2014/08/27 职场文书
初中优秀学生评语
2014/12/29 职场文书
青春雷锋观后感
2015/06/10 职场文书
大学生入党自传2015
2015/06/26 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
Django如何创作一个简单的最小程序
2021/05/12 Python
MySQL多表查询机制
2022/03/17 MySQL