Я хочу экспортировать свой объект "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" в массив.
Моя публичная функция findTennis
в моем mitgliedRepository выглядит так:
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: Примечание: свойство Undefined: 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);
}
Пожалуйста, укажите мне правильное направление. Благодарю вас!