我为生日字段类型编写了自定义验证。 我之前已经编写过自定义验证,但不是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当然会抛出错误)。 我该如何正确地做到这一点?
问候。
答案 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函数中的错误。