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 实现多服务器共享 SESSION 数据
Aug 15 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Jul 31 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
PHP查询分页的实现代码
Jun 09 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python 判断自定义对象类型
2009/03/21 Python
关于Python数据结构中字典的心得
2017/12/04 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
如何提高SQL Server的安全性
2016/07/25 面试题
建筑工程自我鉴定
2013/10/18 职场文书
篮球社团活动总结
2014/06/27 职场文书
检讨书1000字
2014/10/11 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
主持人开场白台词
2015/05/29 职场文书
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL