Привет всем, я пытаюсь сгенерировать CSV-файл с пакетом egyg33k, который я использую в моем проекте Symfony:
Дело в следующем:
У меня есть веточка, которая содержит 2 входа для выбора даты икнопка, когда я нажимаю на кнопку, я получаю значения двух сборщиков даты и передаю их в действие php, чтобы использовать их в построителе запросов (все это работает), но файл не начинает загрузку, кроме того, что я получаю егосодержимое на консоли браузера (см. фото 1), кроме того, действие работало до использования ajax.
ajax call:
$(document).ready(function() {
$("#get_extract").on("click", function() {
$.ajax({
method: "POST",
url: "/back-office/extraction",
data: {
begin_date: $("#begin_date").val(),
end_date: $("#end_date").val()
}
})
});
});
PHP:
public function getExtractRecordsAction(Request $request)
{
if ($request->isXmlHttpRequest() || $request->query->get('showJson') == 1) {
$beginDate = $request->get('begin_date');
$endDate = $request->get('end_date');
$recordsRepository = $this->getDoctrine()->getRepository(Record::class);
$query = $recordsRepository->createQueryBuilder('r')
->where('r.createdAt BETWEEN :beginDate AND :endDate')
->setParameter('beginDate', $beginDate)
->setParameter('endDate', $endDate)
->getQuery();
$records = $query->getResult();
$writer = $this->container->get('egyg33k.csv.writer');
$csv = $writer::createFromFileObject(new \SplTempFileObject());
$csv->insertOne([
'ID',
'FIRST_NAME',
'LAST_NAME',
'CIVILITY',
'PHONE_NUMBER',
'EMAIL',
'ZIP_CODE',
'OPTIN',
]);
foreach ($records as $record) {
$csv->insertOne([
$record->getId(),
$record->getPersonalDetails()->getFirstName(),
$record->getPersonalDetails()->getLastName(),
$record->getPersonalDetails()->getCivility(),
$record->getPersonalDetails()->getPhoneNumber(),
$record->getPersonalDetails()->getEmail(),
$record->getPersonalDetails()->getZipCode(),
$record->getPersonalDetails()->getOptin(),
]);
}
$csv->output('EXAMPLE.csv');
exit();
}
}
Фото 1