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 array_merge下进行数组合并的代码
Jul 22 PHP
php object转数组示例
Jan 15 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
详解PHP队列的实现
Mar 14 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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 调用远程url的六种方法小结
2009/11/02 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
详解php反序列化
2020/06/10 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Django中的静态文件管理过程解析
2019/08/01 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
《月迹》教学反思
2014/02/19 职场文书
教师党员公开承诺书
2014/03/25 职场文书
国际贸易实训报告
2014/11/05 职场文书
2014年环保工作总结
2014/11/26 职场文书
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技