Flash数据无法在视图中呈现

时间:2013-12-11 15:36:21

标签: twig session-variables symfony-2.3

我尝试在提交表单之前打印警报报告。 委托人检查该实体是否有效并通知结果:

$estado = Array();
if(count($errors) > 0){
    $estado['alert'] = 'alert-error';
    $estado['message'] = $errors->get(0);
}else{    
    $estado['alert'] = 'alert-success';
    $estado['message'] = "Usuario creado correctamente";
}

$this->getRequest()->getSession()->getFlashBag()->add('status',$estado);
return $this->redirect($this->generateUrl('alta_usuario'));

所以,在视图中:

{% if app.session.flashbag.has('status') %}
<div class="alert {{ app.session.get('status').alert }}">   
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    {{ app.session.get('status').message }}
</div>
{% endif %}

但Symfony在下一条消息中失败了:

  

无法访问NULL变量(“”)

上的属性(“警报”)

在分析器中,Flashdata是:

status : [{"alert":"alert-error","message":{}}]

两个问题: 1)为什么“消息”为空?实体有错误,$errors->get(0)应该得到第一个错误? 2)为什么无法从视图中访问$estado值?。

任何想法?。

1 个答案:

答案 0 :(得分:0)

这个问题与下面的链接非常相​​似。 你可以在这里找到答案 Am I using the Symfony flash variables the wrong way?