断言Symfony 2.7中的未来日期

时间:2015-12-07 07:20:34

标签: php symfony

如何进行验证,不允许用户接受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;

感谢。

1 个答案:

答案 0 :(得分:0)

您的断言似乎是正确的,因此在运行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);