У меня есть backend на SonataAdminBundle 2.4.*@dev версия.Данные по обновлению Symfony 2 на экспорт
Перед обновлением и ядром symfony от 2,7 до 2,8 мой код работал.
Объяснение: У меня есть список подписчиков, у которых есть флаг isNew для отдельного экспорта новых или старых пользователей. По умолчанию 1, при экспорте необходимо изменить его на 0, если в списке есть новые пользователи.
Но теперь это не сработает. Потому что, если фильтр сетки задается этим полем isNew и экспорта, в поле БД изменяется раньше, и позже
return $this->get('sonata.admin.exporter')->getResponse(
$format,
$filename,
$this->admin->getDataSourceIterator()
);
getDataSourceIterator принимать данные из БД не от результата. Таким образом, новых пользователей нет, а файл пуст.
Как обновить данные после экспорта, есть идеи?
UPDATE:
Функция экспорта:
/**
* Export data to specified format.
*
* @param Request $request
*
* @return Response
*
* @throws AccessDeniedException If access is not granted
* @throws \RuntimeException If the export format is invalid
*/
public function exportAction(Request $request = null)
{
$request = $this->resolveRequest($request);
$this->admin->checkAccess('export');
$format = $request->get('format');
$allowedExportFormats = (array) $this->admin->getExportFormats();
if (!in_array($format, $allowedExportFormats)) {
throw new \RuntimeException(
sprintf(
'Export in format `%s` is not allowed for class: `%s`. Allowed formats are: `%s`',
$format,
$this->admin->getClass(),
implode(', ', $allowedExportFormats)
)
);
}
$filename = sprintf(
'export_%s_%s.%s',
strtolower(substr($this->admin->getClass(), strripos($this->admin->getClass(), '\\') + 1)),
date('Y_m_d_H_i_s', strtotime('now')),
$format
);
//my code to update field isNew of subscribers
$this->get('cfw.subscription')->processExportEmails($controller->admin->getFilterParameters());
return $this->get('sonata.admin.exporter')->getResponse(
$format,
$filename,
$this->admin->getDataSourceIterator()
);
}
Не могли бы вы показать мне всю функцию (до возвращения)? – chalasr
это функция связки – dmma
Извините, я ошибся, функция переплетена – dmma