跳到内容

编辑此页

7.2

Week 约束在 Symfony 7.2 中引入。

验证给定的字符串(或实现 Stringable PHP 接口的对象)是否表示符合 ISO-8601 标准的有效周数(例如 2025-W01)。

适用于 属性或方法
验证器 WeekValidator

基本用法

如果您想确保 OnlineCourse 类的 startWeek 属性在 2022 年的第一周和第二十周之间,您可以这样做

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

use Symfony\Component\Validator\Constraints as Assert;

class OnlineCourse
{
    #[Assert\Week(min: '2022-W01', max: '2022-W20')]
    protected string $startWeek;
}

此约束不仅检查值是否匹配周数模式,还验证指定的周是否实际存在于日历中。根据 ISO-8601 标准,年份可以有 52 周或 53 周。例如,2022-W53 无效,因为 2022 年只有 52 周;但 2020-W53 有效,因为 2020 年有 53 周。

选项

最小值

类型: string 默认值: null

值必须匹配的最小周数。

最大值

类型: string 默认值: null

值必须匹配的最大周数。

分组

类型: array | string 默认值: null

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

无效格式消息

类型: string 默认值: This value does not represent a valid week in the ISO 8601 format.

如果值与 ISO 8601 周格式不匹配,将显示此消息。

无效周数消息

类型: string 默认值: The week "{{ value }}" is not a valid week.

如果值与有效周数不匹配,将显示此消息。

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

参数 描述
{{ value }} 传递给约束的值

过低消息

类型: string 默认值: The value should not be before week "{{ min }}".

如果值低于最小周数,将显示此消息。

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

参数 描述
{{ min }} 最小周数

过高消息

类型: string 默认值: The value should not be after week "{{ max }}".

如果值高于最大周数,将显示此消息。

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

参数 描述
{{ max }} 最大周数

载荷

类型: mixed 默认值: null

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

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

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