我有一个方法,验证了某些输入的组合是有效的(例如,选择了老年人-折扣选项,生日显示年龄在n以上)。
/**
* @Assert\True(message="you are too young for this option")
*/
public function isElderlyOptionValid()
{
return
($this->getElderlyOption() && $this->getAgeFromBirthday() <= 60);
}现在,我希望将错误显示给老年人-折扣选项,而不是作为实体/表单的一般错误。所以我需要这样的东西:
/**
* @Assert\True(message="you are too young for this option", bindTo="elderlyOption")
*/
public function isElderlyOptionValid()
{
return
($this->getElderlyOption() && $this->getAgeFromBirthday() <= 60);
}我确实读过一次,这是可能的,但不能再次找到这篇文章。
发布于 2015-12-30 05:23:09
UniqueEntity有error_path并在UniqueEntityValidator中使用atPath,但我认为不可能为所有验证器更改路径。
也许您可以扩展这个验证器并添加atPath功能,但是。
也许是这就是你要找的。表单具有error_mapping属性,您可以将错误“重定向”到字段。
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'error_mapping' => array(
'matchingCityAndZipCode' => 'city',
),
));
}https://stackoverflow.com/questions/33911901
复制相似问题