断言\范围不起作用symfony

时间:2018-04-11 08:40:53

标签: symfony doctrine entity assert

我想验证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;

但它不起作用:/

一些信息:

  • 这是一个自定义的UserEntity,它扩展了BaseUser
  • Symfony版本2.8
  • 我使用easyAdminBundle来创建/更新/删除用户
  • 我已将use Symfony\Component\Validator\Constraints as Assert;放在顶部

1 个答案:

答案 0 :(得分:0)

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

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

如果要保留新对象,首先使用控制器中的ValidatorInterface实例方法对其进行验证。如果object有效,那么如果没有向用户发送有关错误的信息,则保留它们。

请查看有关使用validator和其他内容symfony docs

的完整教程

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

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

检查文档如何设置easy admin

的配置