symfony 2, для запроса загрузки файла верните пустой ответ с установленным флэш-сообщением
У меня есть ссылка на веб-форму, которая указывает на действие загрузки файла.
public function downloadDataAction($data_id)
{
//get data from database and create a zip file ($fzip) with the data
$content = file_get_contents($fzip);
$filename = 'mydata_' . $data_id . '.zip';
$headers = array(
'Content-Type' => 'application/zip',
'Content-Disposition' => "attachment; filename=" . urlencode($filename),
);
return new Response($content, 200, $headers);
}
Вышеуказанное действие работает как ожидалось; zip-файл загружается, когда есть данные с указанным идентификатором, а исходная веб-форма остается без изменений или обновления. Я не знаю, какой ответ вернуть, когда в базе данных нет данных. В идеале я хотел бы установить флэш-сообщение, но без обновления флэш-память не будет отображаться в форме, а обновление уничтожит записи, сделанные пользователем, если были какие-либо записи, сделанные пользователем, до того, как ссылка была щелкнул. Что я должен делать?
1 ответ
Следующий код сгенерирует обновление с установкой флеш-сообщения
if (!isset($fzip)) {
$this->get('session')->getFlashBag()->add('notice','Notice message content');
return $this->redirect($this->generateUrl('_route_name'));
}
Но вы также можете сделать некоторые ветки, которые будут отображать сообщение
if (!isset($fzip)) {
return $this->render('@AcmeDemo/Default/index.html.twig', array('msg' => 'message content'));
}