Intereting Posts
Функция PHP для удаления всех между определенным символом (-ами) в строке Восклицательный знак случайным образом в результате PHP-HTML-Email Symfony2 / Twig: создать альтернативный абсолютный путь URL для использования с CDN? Запись видео с веб-камеры с помощью jquery / flash непосредственно в браузере? Получить содержимое страницы, требующее аутентификации в PHP Zend Regex> Проблема модуля маршрута Как создать большое (высокое качество 300 точек на дюйм) изображение из JSON / массив данных (ширина, высота, x, y, ангелы) с помощью PHP ImageMagic / Imagick PHP-код для разделения URL-адреса Хотите проверить день уже существует Восстановление базы данных mysql дает ошибки Открытая ошибка zipArchive в PHP Обработчики событий PHP-кликов Войдите в систему с помощью Twitter и оставайтесь в системе (PHP) Использование собственного SQL-запроса без класса сущности Должен ли я разрешать 'allow_url_fopen' в PHP?

Как экспортировать объект как CSV в Symfony?

Я использую следующий код для вывода CSV, но при запуске я получаю пустой экран. в основном моя путаница с DoctrineORMQuerySourceIterator, так как я не понимаю, как правильно это использовать. Я предполагаю, что я должен перечислять имена свойств ????

Я использую экспортера сонаты:

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(); 

Solutions Collecting From Web of "Как экспортировать объект как CSV в Symfony?"

Параметр secound для DoctrineORMQuerySourceIterator представляет собой массив имен свойств, таких как:

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

Как вы можете видеть в исходном коде, на самом деле он использует компонент Property Accessor для доступа к данным (здесь вы можете найти больше примеров).

Если вы хотите экспортировать необработанные данные в db, я рекомендую использовать PDOStatementSourceIterator или DoctrineDBALConnectionSourceIterator поскольку они быстрее. Первый требует PDOStatement а другой требует соединения, запроса и массива prameters (вы можете увидеть его в связанном исходном коде) в качестве параметров конструктора.

Рабочий пример с использованием CsvWriter:

 $format = 'csv'; $exportTo = 'php://output'; $exporterWriter = '\Exporter\Writer\\' . ucfirst($format) . 'Writer'; $data = $repository->createQueryBuilder('r')->getQuery(); $fields = array('Last Name' => 'pLastName', 'First Name' => 'pFirstName'); $source = new DoctrineORMQuerySourceIterator($data, $fields); $writer = new $exporterWriter($exportTo); Handler::create($source, $writer)->export(); 

Извините за задержку, прежде чем ответить на вашу проблему.