我在网络表单上有一个链接,指向文件下载操作。
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,如果用户有任何条目,则在刷新之前刷新会破坏用户所做的条目。点击。我该怎么办?
答案 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'));
}