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;
}
Дата обновления перевода 2025-02-21
Note
Как и в большинстве других ограничений, null и пустые строки считаются валидными
значениями. Это для того, чтобы позволить им быть опциональными значениями. Если
значение является обязательным, распространенным решением будет комбинация этого ограничения
с NotBlank.
Опции
countryCode
тип: string по умолчанию: null
Если опция zone установлена как \DateTimeZone::PER_COUNTRY, эта опция
ограничивает валидные идентификаторы часовых поясов, до тех, которые принадлежат
заданной стране.
Значение этой опции должно быть валидным кодом страны ISO 3166-1 alpha-2
(например, CN для Китая).
Дата обновления перевода 2023-09-24
groups
тип: array | string по умолчанию: null
Определяет группу или группы валидации ограничений. Прочитайте больше о группах валидации.
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 }} |
??????????????? ????? ???? ????? |
Дата обновления перевода 2025-07-27
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).