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生成月历代码
Jun 14 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
php发送post请求的三种方法
Feb 11 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
php实现两个数组相加的方法
Feb 17 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
php实现 master-worker 守护多进程模式的实例代码
Jul 20 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
js 金额格式化来回转换示例
2014/02/23 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
angular实现input输入监听的示例
2018/08/31 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Python中有几个关键字
2020/06/04 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
建筑工程自我鉴定
2013/10/18 职场文书
课程设计心得体会
2013/12/28 职场文书
小班重阳节活动方案
2014/02/08 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
汽车转让协议书范本
2014/12/07 职场文书
警告通知
2015/04/25 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
高中运动会前导词
2015/07/20 职场文书
初中政教处工作总结
2015/08/12 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
python中的getter与setter你了解吗
2022/03/24 Python
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers
讲解Python实例练习逆序输出字符串
2022/05/06 Python