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集成FCK的函数代码
Sep 27 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
PHP中的Session对象如何使用
Sep 25 PHP
orm获取关联表里的属性值
Apr 17 PHP
php base64 编码与解码实例代码
Mar 21 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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代码
2013/03/24 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
javascript中的this详解
2014/12/08 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
JSON 数据格式详解
2017/09/13 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python中几种属性访问的区别与用法详解
2018/10/10 Python
python采集微信公众号文章
2018/12/20 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
大学校庆策划书
2014/01/31 职场文书
员工晚婚的请假条
2014/02/08 职场文书
农林环境专业求职信
2014/03/13 职场文书
新闻发布会主持词
2014/03/28 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
学习经验交流会策划书
2015/11/02 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
详解flex:1什么意思
2022/07/23 HTML / CSS