Assert\Range 整数在 Symfony 中不起作用

Assert\Range for integer doesn't work in Symfony

我想验证 Symfony\Component\Validator\Constraints 的整数是否在一个特殊范围内。

这是我的代码:

/**
 * @var integer
 * @Assert\Range(
 *      min = 120,
 *      max = 180,
 *      minMessage = "You must be at least 120 cm tall to enter",
 *      maxMessage = "You cannot be taller than 180 cm to enter"
 * )
 * @ORM\Column(name="cp",  type="integer", nullable=true)
 */
protected $cp;

但是没用。

一些信息:

您必须在 validator 服务上使用 validate() 方法。

还要检查是否在框架配置中启用了验证。

当你想要持久化新对象时,你首先要在控制器中使用 ValidatorInterface 实例方法验证它们。如果对象有效则保留它们,如果不向用户发送一些有关错误的信息。

请查看有关使用 validator 和其他内容的完整教程 symfony docs

如果您在配置中使用 easyAdminBundle,则必须为 cp 属性 添加

- { property: 'cp', type : 'integer', type_options: { attr : { min : minValue, max: maxValue }}}

查看文档如何设置 easy admin

的配置