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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
ajax缓存问题解决途径
Dec 06 PHP
php 8小时时间差的解决方法小结
Dec 22 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
Mar 07 PHP
php 的反射详解及示例代码
Aug 25 PHP
自制PHP框架之设计模式
May 07 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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
一个简单计数器的源代码
2006/10/09 PHP
php的大小写敏感问题整理
2011/12/29 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python队列原理及实现方法示例
2019/11/27 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
乔迁宴答谢词
2014/01/21 职场文书
爱心倡议书范文
2014/05/12 职场文书
酒店开业策划方案
2014/06/02 职场文书
生活部的活动方案
2014/08/19 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
初中思想品德教学反思
2016/02/24 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python