symfony 2,用于下载文件请求返回带有flash消息集的空响应

时间:2013-08-08 06:11:26

标签: forms symfony flash-message

我在网络表单上有一个链接,指向文件下载操作。

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);
}

上述行动按预期进行;当存在具有指定ID的数据时,下载zip文件,并且原始Web表单保持原样,不进行任何更改或刷新。当数据库中没有找到数据时,我不知道返回什么响应。理想情况下,我想设置一条flash消息,但是如果没有刷新,表单上就不会显示flash,如果用户有任何条目,则在刷新之前刷新会破坏用户所做的条目。点击。我该怎么办?

1 个答案:

答案 0 :(得分:0)

以下代码将通过设置flash消息生成刷新

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'));
}