跳到内容

Cidr

编辑此页

验证值是否为有效的 CIDR (无类别域间路由) 表示法。默认情况下,这将同时验证 CIDR 的 IP 和子网掩码的版本 4 和版本 6,并可选择仅允许一种类型的 IP 版本有效。它还支持最小和最大范围约束,其中子网掩码的值有效。

适用于 属性或方法
Cidr
验证器 CidrValidator

基本用法

1
2
3
4
5
6
7
8
9
10
// src/Entity/NetworkSettings.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class NetworkSettings
{
    #[Assert\Cidr]
    protected string $cidrNotation;
}

注意

与大多数其他约束一样,null 和空字符串被认为是有效值。这是为了允许它们成为可选值。如果该值是强制性的,一个常见的解决方案是将此约束与 NotBlank 结合使用。

选项

groups

类型: array | string 默认值: null

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

message

类型: string 默认值: 该值不是有效的 CIDR 表示法。

如果字符串不是有效的 CIDR 表示法,则会显示此消息。

netmaskMin

类型: integer 默认值: 0

它是有效子网掩码可以拥有的最低值的约束。

netmaskMax

类型: integer 默认值: IPv4 为 32 或 IPv6 为 128

它是有效子网掩码可以拥有的最大值的约束。

netmaskRangeViolationMessage

类型: string 默认值: 子网掩码的值应介于 {{ min }} 和 {{ max }} 之间。

如果 CIDR 的子网掩码值大于 netmaskMax 值或小于 netmaskMin 值,则会显示此消息。

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

参数 描述
{{ min }} CIDR 子网掩码可以拥有的最小值
{{ max }} CIDR 子网掩码可以拥有的最大值

payload

类型: mixed 默认值: null

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

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

version

类型: string 默认值: all

这决定了 CIDR 表示法如何被验证,并且可以采用 IP 版本范围 之一。

注意

IP 范围检查 (例如,*_private, *_reserved) 仅验证 IP 地址,而不是整个子网掩码。为了改进验证,你可以为子网掩码设置 {{ min }} 值。例如,范围 9.0.0.0/6 被认为是 *_public,但它也包括 10.0.0.0/8 范围,该范围被归类为 *_private

7.1

对所有 IP 版本范围的支持在 Symfony 7.1 中引入。

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