绑定属性

时间:2015-11-25 08:44:19

标签: symfony symfony-validator

我有一种方法,验证某些输入的组合是否有效(例如,选择了老年人折扣选项,生日显示年龄高于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);
}

我曾经读过一次,这是可能的,但不能再找到这篇文章了。

1 个答案:

答案 0 :(得分:1)

UniqueEntity有error_path并在UniqueEntityValidator中使用atPath但我不认为可以更改所有验证器的路径。

您可以扩展此验证程序并添加atPath功能,

可能 this is what you're looking for 。 表单具有error_mapping属性,您可以将错误“重定向”到字段。

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'error_mapping' => array(
            'matchingCityAndZipCode' => 'city',
        ),
    ));
}