跳到內容

編輯此頁面

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 週。

選項

min

類型string 預設null

值必須符合的最小週數。

max

類型string 預設null

值必須符合的最大週數。

groups

類型array | string 預設null

它定義此約束的驗證群組。閱讀更多關於驗證群組的資訊。

invalidFormatMessage

類型string 預設This value does not represent a valid week in the ISO 8601 format.

如果值不符合 ISO 8601 週格式,將會顯示此訊息。

invalidWeekNumberMessage

類型string 預設The week "{{ value }}" is not a valid week.

如果值不符合有效的週數,將會顯示此訊息。

您可以在此訊息中使用以下參數

參數 描述
{{ value }} 傳遞給約束的值

tooLowMessage

類型string 預設The value should not be before week "{{ min }}"

如果值低於最小週數,將會顯示此訊息。

您可以在此訊息中使用以下參數

參數 描述
{{ min }} 最小週數

tooHighMessage

類型string 預設The value should not be after week "{{ max }}"

如果值高於最大週數,將會顯示此訊息。

您可以在此訊息中使用以下參數

參數 描述
{{ max }} 最大週數

payload

類型mixed 預設null

此選項可用於將任意特定領域的資料附加到約束。Validator 元件不會使用已設定的 payload,但其處理完全取決於您。

例如,您可能想要使用多個錯誤層級,根據錯誤的嚴重性,在前端以不同的方式呈現失敗的約束。

本作品,包括程式碼範例,以 Creative Commons BY-SA 3.0 授權條款授權。
目錄
    版本