我想将我的对象“mitglied”导出到 .csv 文件。我的控制器看起来像这样:
public function exportAction() {
// find all mitglieds
$records = $this->mitgliedRepository->findTennis();
// Set path for export-file
$csvPath = '/var/www/apps/flow/Packages/Application/ITOOP.Atc/Resources/Private/Export/test.csv';
$fp = fopen($csvPath, 'w');
foreach ($records as $lines) {
fputcsv($fp, $lines);
}
fclose($fp);
}
当我调用 exportAction 时,我收到一个错误:
#1:警告:fputcsv() 期望参数 2 是数组,对象在 /var/www/apps/flow/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/itoop_atc_Controller_MitgliedController.php 第 494 行中给出
第 494 行是...
fputcsv($fp, $lines);
...所以我想我必须将对象“mitglied”转换为数组。
我的 mitgliedRepository 中的公共函数findTennis
如下所示:
public function findTennis() {
$query = $this->createQuery();
$result = $query->matching($query->equals('abteilung', 'Tennis'))
->setOrderings(array('name' => \TYPO3\Flow\Persistence\QueryInterface::ORDER_ASCENDING))
->execute();
return $result;
}
我试图设置 toArray(); 在这样的存储库中:
public function findTennis() {
$query = $this->createQuery();
$result = $query->matching($query->equals('abteilung', 'Tennis'))
->setOrderings(array('name' => \TYPO3\Flow\Persistence\QueryInterface::ORDER_ASCENDING))
->execute()
->toArray;
return $result;
}
但后来我收到以下错误:
#1:注意:未定义的属性:TYPO3\Flow\Persistence\Doctrine\QueryResult::$toArray 在 /var/www/apps/flow/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/itoop_atc_Domain_Repository_MitgliedRepository.php 第 105 行
第 105 行当然是
->toArray;
有谁知道,如何将对象转换为流中的数组?
对于以下示例,导出有效,因此我认为存储库查询的(格式)是问题所在。
public function exportAction() {
// Set path for export-file
$csvPath = '/var/www/apps/flow/Packages/Application/ITOOP.Atc/Resources/Private/Export/test.csv';
$test = array (
array('xxx', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('aaa', 'bbb')
);
$fp = fopen($csvPath, 'w');
foreach ($test as $lines) {
fputcsv($fp, $lines);
}
fclose($fp);
}
请指出正确的方向。谢谢!