我正在使用自定义约束对实体属性执行验证,但我的表单使用的setter和getter不直接与验证字段对应,但会影响它。
我想要做的是将验证错误挂钩到最初处理无效用户输入的表单字段。
以下是表单所绑定的验证属性和setter方法的简化示例:
/* @Assert\ValidFoo */
private $foo;
public function setFooBar( $baz ){
$this->foo->bar = $baz;
}
在我的Twig模板中,我希望能够显示错误:
{{ form_errors(form.foobar) }}
我可以使用{{form_errors(form)}}
在表单末尾转储任何错误,但这对我的目的没有好处。如何将验证错误别名到我想要的特定表单字段?
更新
我尝试使用addViolationAt
作为answered here,但它不适用于我。可能是因为属性路径确实不存在?
答案 0 :(得分:1)
您可以将错误回调直接映射到formType
中所需的字段,如下所示:
$resolver->setDefaults(array(
'error_mapping' => array(
'yourCallback' => 'fieldYouWant'
)
)
);