Symfony 4-表单最小最大验证

蒂夫

验证前如何确保min <max

这是我的实体

/**
 * @var int
 *
 * @ORM\Column(name="min", type="integer", nullable=true)
 */
private $min;

/**
 * @var int
 *
 * @ORM\Column(name="max", type="integer", nullable=true)
 */
private $max;

形式:

  ->add('min',               NumberType::class,array('required' => false))
  ->add('max',               NumberType::class,array('required' => false))

这是一个选项,在验证表单之前,min必须小于max

如果不正确,我如何验证并向用户发送消息以更改其表格。

谢谢

德鲁曼

我可以想到多种解决方法。

  1. 评论中已经提到了回调约束。
  2. 创建自己的自定义约束
  3. 使用表达式约束

后者可能是最简单的一种。基本上看起来像这样:

/**
 * @Assert\Type("integer")
 * @Assert\Expression("this.getMin() <= this.getMax()")
 */
private $min;

/**
 * @Assert\Type("integer")
 */
private $max;

参见:https : //symfony.com/doc/current/reference/constraints/Expression.html

创建自定义约束比回调约束还要费劲,因此,我不会对此进行详细介绍,但是您可以在文档中找到不错的文章。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章