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 抽象类的简单应用
Sep 06 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
PHP 获取指定地区的天气实例代码
Feb 08 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
php备份数据库类分享
2015/04/14 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
js实现验证码功能
2020/07/24 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python实现Restful API的例子
2019/08/31 Python
np.random.seed() 的使用详解
2020/01/14 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
留学自荐信的技巧
2013/10/17 职场文书
学校元旦晚会方案
2014/02/19 职场文书
促销活动方案模板
2014/02/24 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
车辆工程专业求职信
2014/04/28 职场文书
党的群众路线学习材料
2014/05/16 职场文书
护士求职自荐信
2015/03/25 职场文书
煤矿施工安全协议书
2016/03/22 职场文书