跳到内容

主机名

编辑此页

此约束确保给定的值是一个有效的主机名 (内部使用 FILTER_VALIDATE_DOMAIN 选项,来自 filter_var PHP 函数)。

应用于 属性或方法
主机名
验证器 HostnameValidator

基本用法

要使用 Hostname 验证器,请将其应用于对象上包含主机名的属性。

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

use Symfony\Component\Validator\Constraints as Assert;

class ServerSettings
{
    #[Assert\Hostname(message: 'The server name must be a valid hostname.')]
    protected string $name;
}

以下顶级域名 (TLD) 根据 RFC 2606 保留,因此包含它们的主机名不被认为是有效的:.example, .invalid, .localhost, 和 .test

注意

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

选项

groups

类型: array | string 默认值: null

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

message

类型: string 默认值: 此值不是一个有效的主机名。

当值不是有效主机名时提供的默认消息。

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

参数 描述
{{ value }} 当前 (无效) 的值
{{ label }} 对应的表单字段标签

payload

类型: mixed 默认值: null

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

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

requireTld

类型: boolean 默认值: true

默认情况下,只有当主机名是完全限定的并且包含其 TLD(顶级域名)时,才被认为是有效的。例如,example.com 是有效的,但 example 不是。

将此选项设置为 false 以不要求主机名中包含任何 TLD。

注意

此约束不验证给定的 TLD 值是否包含在 官方顶级域名列表 中(因为该列表在不断增长,并且很难跟踪它)。

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