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'));
}
Другие вопросы по тегам