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魔术函数__call()用法实例分析
Feb 13 PHP
php实现字符串翻转的方法
Mar 27 PHP
PHP MSSQL 分页实例
Apr 13 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
laravel model 两表联查示例
Oct 24 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 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导入Excel到MySQL的方法
2011/04/23 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
thinkPHP查询方式小结
2016/01/09 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
图片自动更新(说明)
2006/10/02 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
几种响应式文字详解
2017/05/19 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Python画图高斯分布的示例
2019/07/10 Python
python批量修改ssh密码的实现
2019/08/08 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
《草原的早晨》教学反思
2014/04/08 职场文书
个人优缺点总结
2015/02/28 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript