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令牌 Token改进版
Jul 18 PHP
php设计模式 Bridge (桥接模式)
Jun 26 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
php安装swoole扩展的方法
Mar 19 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
详解PHP中的Traits
Jul 29 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
php实现分页功能的详细实例方法
Sep 29 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 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
PHP 替换模板变量实现步骤
2009/08/24 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
js调用后台servlet方法实例
2013/06/09 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
angular多语言配置详解
2019/05/16 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
python3实现表白神器
2019/04/09 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python 从attribute到property详解
2020/03/05 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
python爬取招聘要求等信息实例
2020/11/20 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
酒店服务实习自我鉴定
2013/09/22 职场文书
求职简历中的自我评价分享
2013/12/08 职场文书
清洁工表扬信
2014/01/08 职场文书
《王二小》教学反思
2014/02/27 职场文书
党员个人剖析材料
2014/09/30 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
小学生法制教育心得体会
2016/01/14 职场文书