Timezone
Дата обновления перевода 2023-09-25
Timezone
Валидирует, что значение является валидным идентификатором часового пояса
(например, Europe/Paris
).
??????????? ? | ???????? ??? ?????? |
????? | Timezone |
????????? | TimezoneValidator |
Базовое использование
Представьте, что у вас есть класс UserSettings
, с полем timezone
, которое является
строкой, содержащей любой из PHP-идентификаторов часовых поясов (например, America/New_York
):
1 2 3 4 5 6 7 8 9 10
// src/Entity/UserSettings.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class UserSettings
{
#[Assert\Timezone]
protected string $timezone;
}
Note
As with most of the other constraints, null
and empty strings are
considered valid values. This is to allow them to be optional values.
If the value is mandatory, a common solution is to combine this constraint
with NotBlank.
Опции
countryCode
тип: string
по умолчанию: null
Если опция zone
установлена как \DateTimeZone::PER_COUNTRY
, эта опция
ограничивает валидные идентификаторы часовых поясов, до тех, которые принадлежат
заданной стране.
Значение этой опции должно быть валидным кодом страны ISO 3166-1 alpha-2
(например, CN
для Китая).
groups
type: array
| string
default: null
It defines the validation group or groups of this constraint. Read more about validation groups.
intlCompatible
тип: boolean
по умолчанию: false
Это ограничение считает валидными как PHP-идентификаторы часовых поясов, так и часовые пояса ICU , предоставленные компонентом Intl от Symfony.
Однако, часовые пояса, предоставленные компонентом Intl, могут отличаться
от часовых поясов, предоставленных PHP-расширением Intl (так как они используют
разные версии ICU). Если эта опция установлена как true
, данное ограничение
считает валидными только значения, совместимые с PHP-методом \IntlTimeZone::createTimeZone()
.
message
тип: string
по умолчанию: This value is not a valid timezone.
Это сообщение отображается, если базовые данные не являются валидным идентификатором часового пояса.
Вы можете использовать следующие параметры в этом сообщении:
???????? | ???????? |
---|---|
{{ value }} |
??????? (??????????) ???????? |
{{ label }} |
??????????????? ????? ???? ????? |
Дата обновления перевода 2024-07-25
payload
тип: mixed
по умолчанию: null
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.
zone
тип: string
по умолчанию: \DateTimeZone::ALL
Установите эту опцию в одну из следующих констант, чтобы ограничить валидные идентификаторы часовых поясов до тех, которые принадлежат этой географической зоне:
\DateTimeZone::AFRICA
\DateTimeZone::AMERICA
\DateTimeZone::ANTARCTICA
\DateTimeZone::ARCTIC
\DateTimeZone::ASIA
\DateTimeZone::ATLANTIC
\DateTimeZone::AUSTRALIA
\DateTimeZone::EUROPE
\DateTimeZone::INDIAN
\DateTimeZone::PACIFIC
Кроме того, если специальные значения зон:
\DateTimeZone::ALL
принимает любой часовой пояс, кроме устаревших;\DateTimeZone::ALL_WITH_BC
принимает любой часовой пояс, включая устаревшие;\DateTimeZone::PER_COUNTRY
ограничивает валидные часовые пояса по определенной стране (которая определяется с использованием опцииcountryCode
).