在Symfony2中,我将如何使用树枝模板来显示每个字段旁边的AND表单顶部的表单错误?Symfony2在字段旁边和表格顶部显示表单错误
目前我只设法得到一个或另一个,通过设置error_bubbling
为true或在每一个领域虚假...
感谢
在Symfony2中,我将如何使用树枝模板来显示每个字段旁边的AND表单顶部的表单错误?Symfony2在字段旁边和表格顶部显示表单错误
目前我只设法得到一个或另一个,通过设置error_bubbling
为true或在每一个领域虚假...
感谢
一个解决方案,我可以建议你是做第二,明确的,验证你的对象并向你的模板发送错误。这样,第一个隐含的验证在表单对象内完成,并且错误被绑定到字段(不使用错误冒泡)。第二个验证会给你一个错误的迭代器,你可以将这个迭代器传递给你的模板以显示在窗体的顶部。然后,您将在每个字段旁边以及表单顶部留下错误。
我建议你根据StackOverflow上的this问题。检查this特别的答案。
下面的代码为控制器的草图(我没有测试任何东西):
// Code in a controller
public acmeFormAction(...) {
// Form and object code
// Get a ConstraintViolationList
$errors = $this->get('validator')->validate($user);
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
'errors' => errors,
));
}
和代码模板:
{# Code in a twig template #}
<ul id="error-list">
{% for error in errors %}
<li> error.message </li>
{% endfor %}
</ul>
{# Display your form as usual #}
如果没记错的话,还有一个办法从窗体中检索所有错误,并仍然在每个字段上设置错误。从我的记忆来看,它是表格视图中的一个特殊属性,如form.errors
。但我不记得或找到关于此的任何信息。所以,现在,这是我能找到的最好的方法。
你应该做的是使用形式误差,这可已经考虑到这里乏像描述:
https://stackoverflow.com/a/13047952/1041895
请看看注释:
使用vars.errors在新版本上或只是转储表单字段以查看属性。 因为这部分取决于Symfony版本。
如果我们从全局的角度来看,明确的验证听起来不太好。假设我们的应用程序中有50个窗体。是的。 看看我的答案。 –