Symfony自定义约束/验证生日

时间:2014-11-09 11:52:58

标签: validation symfony constraints

我为生日字段类型编写了自定义验证。 我之前已经编写过自定义验证,但不是DateTime字段。

我的AdultBirthdateValidator的验证功能如下:

// $value of type DateTime
public function validate($value, Constraint $constraint)
{
    $min_age = 18;

    if($this->validate_age($value, $min_age) === false)
    {
        $this->context->buildViolation($constraint->message)
            ->setParameter('%string%', $value)
            ->addViolation();
    }
}

问题是,我现在不完全是:

->setParameter('%string%', $value)

此功能需要。传递的$ value是一个DateTime字段,所以我不知道如何在这里传递它。 (String当然会抛出错误)。 我该如何正确地做到这一点?

问候。

2 个答案:

答案 0 :(得分:0)

从我读到的,你应该可以做这样的事情......

$this->context->addViolation(
    $constraint->message,
    array('%string%' => $value->format('Y-m-d')) //Formats DateTime to a string
);

但我没有看到的是你对应的$constraint->message类,所以我不确定这是你想要的格式,还是真的,如果你甚至需要他们的生日来生成约束消息。

答案 1 :(得分:0)

修正了它。问题是$ value->格式(' Y-m-d')和我的Serializer函数中的错误。