如何将自定义验证回调错误添加到特定的表单类型字段?

时间:2014-09-11 19:12:32

标签: symfony

我正在使用自定义约束对实体属性执行验证,但我的表单使用的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,但它不适用于我。可能是因为属性路径确实不存在?

1 个答案:

答案 0 :(得分:1)

您可以将错误回调直接映射到formType中所需的字段,如下所示:

$resolver->setDefaults(array( 'error_mapping' => array( 'yourCallback' => 'fieldYouWant' ) ) );