Time

Дата обновления перевода 2024-07-25

Time

Валидирует, что значение является валидным временем, то есть объектом, реализующим DateTimeInterface, или строкой (или объектом, который можно определить в строку), следующей валидному формату HH:MM:SS.

??????????? ? ???????? ??? ??????
????? Time
????????? TimeValidator

Базовое применение

Представьте, что у вас есть класс События, с полем startAt, которое является временем дня начала события:

1
2
3
4
5
6
7
8
9
10
11
12
13
// src/Entity/Event.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Event
{
    /**
     * @var string A "H:i:s" formatted value
     */
    #[Assert\Time]
    protected string $startsAt;
}

Дата обновления перевода 2025-02-21

Note

Как и в большинстве других ограничений, null и пустые строки считаются валидными значениями. Это для того, чтобы позволить им быть опциональными значениями. Если значение является обязательным, распространенным решением будет комбинация этого ограничения с NotBlank.

Опции

Дата обновления перевода 2023-09-24

groups

тип: array | string по умолчанию: null

Определяет группу или группы валидации ограничений. Прочитайте больше о группах валидации.

message

тип: string по умолчанию: Это значение не является валидным временем.

Это сообщение отображается, если основоположные данные не являются валидным временем.

Вы можете использовать следующие параметры в сообщении:

???????? ????????
{{ value }} ??????? (??????????) ????????
{{ label }} ??????????????? ????? ???? ?????

withSeconds

тип: boolean по умолчанию: true

Эта опция позволяет вам указать, должно ли время содержать секунды.

????? ??????? ?????????? ???????? ???????????? ????????
true /^(\d{2}):(\d{2}):(\d{2})$/ 12:00:00 12:00
false /^(\d{2}):(\d{2})$/ 12:00 12:00:00

Дата обновления перевода 2025-02-05

payload

тип: mixed по умолчанию: null

Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.

Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.