Symfony 2.7中关于未来日期的断言


Assert on Future Dates in Symfony 2.7

如何进行验证,使用户不接受Symfony实体上的未来日期。

我的实体中有以下断言代码:

  /**
 * @var date
 *
 * @ORM'Column(name="birthday", type="date")
 * @Assert'NotBlank(message="Please enter your birthday.", groups={"Registration", "Profile", "AdminEdit"})
 * @Assert'LessThanOrEqual("+1 year Asia/Tokyo", message="Invalid date", groups={"Registration", "Profile", "AdminEdit"})
 * 
 */
private $birthday;

谢谢。

您的断言似乎是正确的,因此当Symfonies验证器在其上运行时,应该抛出所需的错误。

创建表单并使用$form->isValid()时,会自动检查此断言。

您还可以使用symfonies验证器来运行断言,而无需使用表单。这可以使用以下代码完成:

// fetch the validator from the symfony container (assuming you're in a controller)
$validator = $this->get('validator');
// run it and return errors
$errors = $validator->validate($author);