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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
ASP知识讲座四
Oct 09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
PHP目录操作实例总结
Sep 27 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 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 读取和修改大文件的某行内容的代码
2009/10/30 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
深入理解python中的闭包和装饰器
2016/06/12 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python实现LRU热点缓存及原理
2019/10/29 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Django url 路由匹配过程详解
2021/01/22 Python
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
房产销售经理职责
2013/12/20 职场文书
岗位职责的构建方法
2014/02/01 职场文书
公司活动总结怎么写
2014/06/25 职场文书
大学迎新生标语
2014/10/06 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
同意报考公务员证明
2015/06/17 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL