Symfony 验证器条件验证
Symfony validator conditional validation
* @Assert\Type(type="array")
* @Assert\Count(
* min=5,
* max=10
* )
我需要验证一个类型数组,然后我需要验证数组是否有最小和最大计数。
但是当我发送一个字符串值时,Assert\Type
评估它不是一个有效的类型,但是尽管验证继续到 Assert\Count
并且有问题它不是一个数组并且 Assert\Count
抛出 UnexpectedValueException
并且我有消息:This value should be of type {{ type }}.
,这对我来说不是正确的验证消息。
只有当Assert\Type
条件正确时才可以做Assert\Count
吗?
如果我理解你的问题,那么使用 Assert Sequentially 就是解决方法。
将您的断言更新为如下所示:
* @Assert\Sequentially({
* @Assert\Type(type="array"),
* @Assert\Count(min=5, max=10),
* })
*/
如果您的 Type 不是数组并且不执行任何进一步验证,将引发第一次验证。
* @Assert\Type(type="array")
* @Assert\Count(
* min=5,
* max=10
* )
我需要验证一个类型数组,然后我需要验证数组是否有最小和最大计数。
但是当我发送一个字符串值时,Assert\Type
评估它不是一个有效的类型,但是尽管验证继续到 Assert\Count
并且有问题它不是一个数组并且 Assert\Count
抛出 UnexpectedValueException
并且我有消息:This value should be of type {{ type }}.
,这对我来说不是正确的验证消息。
只有当Assert\Type
条件正确时才可以做Assert\Count
吗?
如果我理解你的问题,那么使用 Assert Sequentially 就是解决方法。
将您的断言更新为如下所示:
* @Assert\Sequentially({
* @Assert\Type(type="array"),
* @Assert\Count(min=5, max=10),
* })
*/
如果您的 Type 不是数组并且不执行任何进一步验证,将引发第一次验证。