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

Symfony 如何向特定表单类型字段添加自定义验证回调错误?,symfony,Symfony,我使用自定义约束对实体属性执行验证,但我的表单使用的setter和getter与验证字段不直接对应,但会影响它 我要做的是将验证错误挂接到最初处理无效用户输入的表单字段上 下面是表单绑定到的validating属性和setter方法的简化示例: /* @Assert\ValidFoo */ private $foo; public function setFooBar( $baz ){ $this->foo->bar = $baz; } 在我的小枝模板中,我希望能够显示

我使用自定义约束对实体属性执行验证,但我的表单使用的setter和getter与验证字段不直接对应,但会影响它

我要做的是将验证错误挂接到最初处理无效用户输入的表单字段上

下面是表单绑定到的validating属性和setter方法的简化示例:

/* @Assert\ValidFoo */ 
private $foo;

public function setFooBar( $baz ){
    $this->foo->bar = $baz;
}
在我的小枝模板中,我希望能够显示以下错误:

{{ form_errors(form.foobar) }}
我可以使用
{{form_errors(form)}}
将表单末尾的任何错误转储出去,但这对我的目的没有好处。如何将验证错误别名到所需的特定表单字段上


更新:


我试过使用
addViolationAt
as,但它对我不起作用。可能是因为属性路径实际上不存在?

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

$resolver->setDefaults(数组)(
“错误映射”=>数组(
'yourCallback'=>'fieldYouWant'
)
)

);

为什么不使用?我的验证回调在类属性验证器中。它可以工作,但是表单不知道如何将错误重新映射到它的字段上。您是否建议我在表单处理或表单类型对象中直接使用回调执行验证器?也许我不太清楚,但如果您不能像这样在控制器(或formHandler类)中添加错误:
if(!callback)$form->get('yourField')->addError(new FormError('error message')
您可以将错误回调直接映射到表单类型中所需的字段,如下所示:
$resolver->setDefaults(数组('error\u mapping'=>array('yourCallback'=>'fieldYouWant'))是!错误映射是关键。谢谢如果你再加一个,我会接受你的答案。很高兴能帮上忙:-)