週
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 週。
選項
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,但其處理完全取決於您。
例如,您可能想要使用多個錯誤層級,根據錯誤的嚴重性,在前端以不同的方式呈現失敗的約束。