跳到内容

计数

编辑此页

验证给定集合(即数组或实现了 Countable 接口的对象)的元素计数是否在某个最小值和最大值之间

适用于 属性或方法
计数
验证器 CountValidator

基本用法

要验证 emails 数组字段包含 1 到 5 个元素,你可以添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// src/Entity/Participant.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Participant
{
    #[Assert\Count(
        min: 1,
        max: 5,
        minMessage: 'You must specify at least one email',
        maxMessage: 'You cannot specify more than {{ limit }} emails',
    )]
    protected array $emails = [];
}

选项

divisibleBy

类型: integer 默认值: null

验证给定集合的元素数量是否可以被某个数字整除。

另请参阅

如果您需要验证集合以外的其他数据类型是否可以被某个数字整除,请使用 DivisibleBy 约束。

divisibleByMessage

类型: string 默认值: 此集合中的元素数量应为 {{ compared_value }} 的倍数。

如果给定集合的元素数量不能被 divisibleBy 选项中定义的数字整除,则会显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ compared_value }} divisibleBy 选项中配置的数字

exactMessage

类型: string 默认值: 此集合应恰好包含 {{ limit }} 个元素。

如果最小值和最大值相等,并且底层集合的元素计数不完全是此值,则会显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ count }} 当前集合大小
{{ limit }} 确切的预期集合大小

groups

类型: array | string 默认值: null

它定义此约束的验证组。阅读更多关于 验证组 的信息。

max

类型: integer

此选项是 “max” 计数的值。如果给定的集合元素计数大于此最大值,验证将失败。

当未定义 min 选项时,此选项是必需的。

maxMessage

类型: string 默认值: 此集合应包含 {{ limit }} 个或更少的元素。

如果底层集合的元素计数大于 max 选项,则会显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ count }} 当前集合大小
{{ limit }} 上限

min

类型: integer

此选项是 “min” 计数的值。如果给定的集合元素计数小于此最小值,验证将失败。

当未定义 max 选项时,此选项是必需的。

minMessage

类型: string 默认值: 此集合应包含 {{ limit }} 个或更多的元素。

如果底层集合的元素计数小于 min 选项,则会显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ count }} 当前集合大小
{{ limit }} 下限

payload

类型: mixed 默认值: null

此选项可用于将任意特定于域的数据附加到约束。配置的 payload 不会被 Validator 组件使用,但其处理完全取决于您。

例如,您可能想使用多个错误级别,以便根据错误严重程度在前端以不同方式呈现失败的约束。

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
TOC
    版本