如何在 Symfony 中将实体导出为 CSV?

2024-02-12

我使用以下代码输出 CSV,但运行时出现空白屏幕。基本上我的困惑在于 DoctrineORMQuerySourceIterator 因为我不明白如何正确使用它。我假设我必须列出属性名称???

我正在使用索纳塔导出器:

https://github.com/sonata-project/exporter https://github.com/sonata-project/exporter

<?php

$repository = $this->getDoctrine()->getRepository('MainReferralCaptureBundle:Referral');
$referrals = $repository->createQueryBuilder('r')->select('r.pLastName, r.pFirstName')->getQuery();

// $referrals2 = $referrals->getResult();
// var_dump($referrals2);

$data = array(
    0 => array('name' => 'Jack'),
    1 => array('name' => 'Jill')
);

// Pick a format to export to
$format = 'csv';

// Filename
$filename = 'referral.csv';

// Set Content-Type
$content_type = 'text/csv';

// Location to Export this to
$export_to = 'php://output';

// Data to export
$exporter_source = new \Exporter\Source\DoctrineORMQuerySourceIterator($referrals, array('pLastName, pFirstName'));

// Get an Instance of the Writer
$exporter_writer = '\Exporter\Writer\\' . ucfirst($format) . 'Writer';

$exporter_writer = new $exporter_writer($export_to);

// Set the right headers
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-type: ' . $content_type);
header('Content-Disposition: attachment; filename=' . $filename . ';');
header('Expires: 0');
header('Pragma: public');

// Export to the format
\Exporter\Handler::create($exporter_source, $exporter_writer)->export();

第二个参数DoctrineORMQuerySourceIterator是一个属性名称数组,如下所示:

['Column name in the output' => 'fieldName', 'Something' => 'address.street']

正如你在源代码 https://github.com/sonata-project/exporter/blob/458980410a11689b591a67dd083188d002a43b4c/lib/Exporter/Source/DoctrineORMQuerySourceIterator.php#L57它实际上使用属性存取器 http://symfony.com/doc/2.3/components/property_access/introduction.html组件来访问数据(您可以在那里找到更多示例)。

如果您想从数据库导出原始数据,我建议使用PDOStatementSourceIterator https://github.com/sonata-project/exporter/blob/458980410a11689b591a67dd083188d002a43b4c/lib/Exporter/Source/PDOStatementSourceIterator.php or the DoctrineDBALConnectionSourceIterator https://github.com/sonata-project/exporter/blob/458980410a11689b591a67dd083188d002a43b4c/lib/Exporter/Source/DoctrineDBALConnectionSourceIterator.php相反,因为它们更快。前者需要一个PDOStatement另一个需要一个连接、一个查询和一个参数数组(您可以在链接的源代码中看到它)作为构造函数参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Symfony 中将实体导出为 CSV? 的相关文章

  • 显示表中的记录

    我的第一个 PHP 项目遇到了一些麻烦 我试图从 MySQL 数据库 有 3 条记录 获取数据并将其显示在表格中 问题是它似乎只显示记录 2 和 3 它跳过了第 1 条记录 请参阅我的代码并在下面显示 if mysqli connect e
  • 按通用值对值进行分组:userid 和 ipaddress

    我正在解决数据库中的一个问题 我正在尝试查找使用多个帐户的用户 我有一个用户 ID 和使用的 IP 地址的列表 如下所示 用户 ID IP 地址 1 IP 地址 13 2 IP 地址 23 1 IP 地址 12 4 IP地址56 9 IP
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 更改 WhiteOctober TCPDF 捆绑包配置值

    我已经开始在我的 symfony 项目中使用 WhiteOctober TCPDF 包 但我不知道如何更改默认配置值 例如页面格式 我尝试将其放入我的 config yml 中 white october tcpdf tcpdf k tcp
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • postgreSql 中特定时间后表更新

    我已经在 postgres 中创建了表 现在我想在特定时间 例如 1 小时 后更新一行 我看到很多问题 例如 https dba stackexchange com questions 56424 column auto updated a
  • Joomla 页面中的自定义 php 代码

    我正在尝试将 Joomla 1 5 9 页面中的表源从页面中的硬编码 html 更改为从 SQL 数据库获取信息 执行此操作的正确方法是什么 创建一个新的模型或组件并以某种方式在页面中使用它 我找到了这些 http docs joomla
  • 如何仅使用 PHP5 RecursiveDirectoryIterator 类递归显示具有特定文件类型的文件夹和子文件夹

    您好 我正在尝试使用 FilterIterator 上的扩展来获取 RecursiveDirectoryIterator 类 但由于某种原因 它仅在根目录上进行迭代 我的代码是这样的 class fileTypeFilter extends
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV

随机推荐

  • 在远程服务器上安装 Xdebug (bluehost.com)

    我已经在我的 mac 上安装并运行了 xdebug 但我似乎无法将其安装在我的服务器 bluehost com 服务器 上 我已经尝试了很多年 并希望得到任何可能的帮助 基本上我已经下载了 xdebug so 并将其安装在我的 public
  • ARM 上的 Windows RT 本机代码调用约定是什么?

    我找不到任何有关 Visual Studio C 使用的 Windows RT on ARM 调用约定的文档 微软用的是ARM吗AAPCS http infocenter arm com help topic com arm doc ihi
  • 如何对全文索引搜索 SQL 的两列执行 CONTAINS()

    我有一个包含以下列的表 MyTable Col1 NameID VARCHAR 50 主键不为空 Col2 地址 VARCHAR 255 数据示例 名称 1 24 地址 主街1234号 在使用默认参数创建目录后 我在表上创建了全文索引 我怎
  • 在 C/C++ 中使用音频的绝对初学者指南?

    我一直对音频转换软件感到好奇 但我从未见过从初学者的角度正确解释如何编写一个简单的程序 例如将 mp3 文件转换为 wav 文件 我不是询问所涉及的任何复杂算法 只是使用简单库的一个小示例 在 SO 上搜索 我想出了几个名字 包括 Lame
  • Visual Studio 2012 快捷键 从 aspx 到 Code Behind 和 Code Behind 到 aspx

    我想知道从Code Behind访问aspx和aspx访问Code Behind页面的快捷键 比较明确的回复 From ASPX page to code behind press F7 From CodeBehind to ASPX Pa
  • Firefox 不显示网站图标

    我创建了 favicon ico 文件并在 HTML head 标签中声明它 IE 8 和 Opera 可以很好地处理它 但 FireFox 甚至不会尝试加载它 正如我从我的 Fiddler 调试代理中看到的那样 我尝试了许多不同的类型 i
  • 同时访问0x10f10df48,但修改需要独占访问

    我正在进行 swift4 迁移 并且出现此警告 这使我的应用程序非常慢 同时访问0x10f10df48 但修改需要独占访问 on line else if context KVOContext keyPath contentSizeKeyP
  • 列出外部进程正在运行的线程

    有时我们的客户会使用 幽灵 应用程序 这意味着当我们在很长时间 例如 72 小时以上 后关闭应用程序时 我们有时会看到应用程序在视觉上已关闭但仍在进程列表中 由于我们无法轻松重现 因此我们想知道哪个线程仍在运行 所以我们想提供一个非常小的工
  • 如何解决循环依赖

    我有3项服务 auth service ts account service ts http service ts 当用户注册时 我应该创建新帐户 因此我将 account service ts 导入到 auth service ts 我应
  • 在 Python 3 中拼出日期的每个单词

    在Python 3中 我想将2018 01 01更改为 2018年一月一日 我查看了格式指南Python 日期时间文档 https docs python org 3 library datetime html strftime and s
  • Visual Studio 2012:我可以在远程调试器中启动 .NET 4.5 应用程序(而不仅仅是附加)吗?

    平台 Visual Studio 2012 C WPF应用程序 Visual Studio 2012 远程调试器工具 我在 64 位系统上的 NET 4 5 应用程序在很早的阶段就崩溃了 https stackoverflow com qu
  • 使用getline后如何让cin工作?

    因此 我使用 cin getline str 10 h 读取了一个字符串 如您所见 我使用了自定义分隔符 h 并且希望读取最多 9 个字符 完成此操作后 我使用 cin gt gt n 将一个整数读入我的 int 变量 n 中 includ
  • 当用 R 抓取网页并且它没有价值时如何报告 NA?

    我从 booking com 的页面上抓取数据并创建数据框 我注意到并非所有酒店都有评级 我尝试过这个例如 Got the elements from Inspect code of the page titles page lt page
  • 哪些错误事件不会触发window.onerror?

    MDN 陈述如下 https developer mozilla org en US docs DOM window onerror 一些 许多error事件不触发window onerror 你必须 专门听他们的 这很好 但是哪些不调用o
  • 从现在开始 5 秒后用 Java 怎么说?

    我正在看日期文档 http www j2ee me javase 6 docs api java util Date html并试图找出如何表达现在 5 秒 这是一些伪代码 import java util Date public clas
  • 从命令行打开 Chrome

    我有以下批处理文件 echo off REM Starts a chrome browser with multiple tabbed sites C Users UserName AppData Local Google Chrome A
  • 两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理

    我的 C 程序中有两个 send 查看wireshark 我意识到它们是作为一条 TCP IP 消息发送出去的 我假设这是某种 TCP IP 优化 确定它们足够小 可以一起发送 然而 我正在从头开始重建一个旧程序 并且我正在基于它的 TCP
  • 圣杯。 JSON。他的方法?

    我彻夜未眠寻找有关如何使用的信息JSON in Grails 我找到了信息JSON closure 我们只能使用一种方法 array 没有其他 这是真的吗 下一个小问题 我在这里找到 http www jiramot info mini g
  • 无法在 ruby​​ on Rails 上访问本地主机

    当我运行服务器并转到localhost 3000我收到此错误 ActiveRecord ConnectionNotEstablished 没有带 id 的连接池 主要发现 有问题的代码 activerecord 5 0 0 lib acti
  • 如何在 Symfony 中将实体导出为 CSV?

    我使用以下代码输出 CSV 但运行时出现空白屏幕 基本上我的困惑在于 DoctrineORMQuerySourceIterator 因为我不明白如何正确使用它 我假设我必须列出属性名称 我正在使用索纳塔导出器 https github co