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初学者头疼十四条问题大总结
Nov 12 PHP
PHP header函数分析详解
Aug 06 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
php车辆违章查询数据示例
Oct 14 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
php扩展开发入门demo示例
Sep 23 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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
什么是短波收听SWL
2021/03/01 无线电
php自动加载机制的深入分析
2013/06/08 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
JS实现身份证输入框的输入效果
2017/08/21 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
深入了解Django中间件及其方法
2019/07/26 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Python爬取网页信息的示例
2020/09/24 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
C#中的验证控件有几种
2014/03/08 面试题
实习报告评语
2014/04/26 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
工程催款通知书
2015/04/17 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python