экспорт CSV в Zend Framework - PullRequest
3 голосов
/ 21 марта 2011

Я знаю, как экспортировать CSV-файл в php.Теперь я хочу выполнить эту задачу в работе Zendframe.

1 Я хочу знать, есть ли какие-либо встроенные функции, которые Zend предоставляет для этих целей, или нам нужно написать тот же код, который мы используем в простом php?

2 Если мне нужно использовать один и тот же код, то куда мне его поместить, будь то в модели или контроллере?

3 У меня есть представление, где пользователь может выбрать дату начала, последнюю дату и пользователя и затем нажатьвойти.На основе этого выбора я хочу экспортировать CSV-файл.

Любой, кто подскажет мне, как выполнить эту задачу

Ответы [ 3 ]

8 голосов
/ 21 марта 2011

Для адресации ваших очков в следующем порядке:

  1. В Zend Framework нет компонента, который будет генерировать и утилизировать файлы CSV.

  2. Ваш контроллер должен просто собрать параметры запроса (т.е. диапазоны дат из пункта 3) и инициировать ответ.Я хотел бы создать другой класс, который может генерировать CSV, а затем использовать этот помощник действий контроллера, SendFile , чтобы фактически отправить файл CSV для загрузки.

  3. Пусть ваш контроллер получит параметры запроса, используя форму.Сгенерируйте CSV, используя ваш класс (пункт 2), а затем используйте помощника для отправки ответа.

Для создания файлов CSV рекомендуется использовать fputcsv вместо построенияСтруны сами.

6 голосов
/ 30 сентября 2011

Вот Zend Framework Action Helper - может быть полезным. Обратите внимание, что сайт и код комментариев на немецком языке. http://blog.abmeier.de/zend-csv-action-helper

0 голосов
/ 15 апреля 2015

Опираясь на ответ Регилеро на этот вопрос , я нашел решение Zend. Просто используйте полный запрос к самой базе данных:

$result = $this->_db->query(
     'SELECT * FROM `table_xy`'
    .'INTO OUTFILE \'tmp/outputfile.csv\''
    .'FIELDS TERMINATED BY \';\''
    .'ENCLOSED BY \'"\''
    .'LINES TERMINATED BY \'\\n\''
);

Только не забудьте настроить необходимые привилегии для этого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...