PHP Symfony 4 Экспорт CSV

Я попытался создать функцию экспорта CSV для своего веб-сайта. Я получил ошибку: «аргумент, переданный в _construct (), должен быть экземпляром PDOStatement». Ниже приведен код (php symfony 4) - посоветуйте, пожалуйста. Спасибо!

<?php

use Exporter\Handler;
use Exporter\Source\PDOStatementSourceIterator;
use Exporter\Writer\CsvWriter;

// Prepare the data source
$em=$this-getDoctrine()->getManager();
$sql = "select id, name from table";
$stm= $em->getConnection()->prepare($sql);
$stm->execute();

$source = new PDOStatementSourceIterator($stm);

// Prepare the writer
$writer = new CsvWriter('data.csv');

// Export the data
Handler::create($source, $writer)->export();

?>

$ em-> getConnection фактически возвращает соединение уровня абстракции базы данных Doctrine. Не соединение pdo. Аналогично, prepare возвращает инструкцию DBAL. Отсюда несоответствие. Вам нужно перейти на один шаг ниже, чтобы установить соединение с pdo. $ stm = $ em-> getConnection () -> getWrappedConnection () -> подготовить ($ sql); Вы, вероятно, столкнетесь с другими проблемами, но это поможет вам пройти первый шаг.

Cerad 12.12.2018 22:13

Этот ответ может быть тем, что вы ищете, используя DoctrineORMQuerySourceIterator: Как экспортировать объект как CSV в Symfony?

Yosh 12.12.2018 22:23

Большое спасибо, Серад и Йош, за ваши быстрые ответы. Я попробовал предложение Cerad, добавив getWrappedConnection (), и проблема была решена. Я столкнулся с другой проблемой: «fopen (data.csv) не удалось открыть поток: отказано в разрешении».

P. Wle 12.12.2018 23:29

Лучше придерживаться одной проблемы на вопрос. Но прежде чем задать новый вопрос, погуглите сообщение об ошибке. Множество возможных причин отказа fopen.

Cerad 13.12.2018 01:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
3 361
0

Другие вопросы по теме