Поле BirthdayType
Дата оновлення перекладу 2025-01-15
Поле BirthdayType
Поле DateType, яке спеціалізується на роботі з даними про дату народження.
Може бути відображене як одне текстове поле, три текстових поля (місяць, день та рік) або три поля вибору.
Цей тип по суті такий же, як і тип DateType, але з більш правильним значенням за замовчуванням для опції years. Опція years за замовчуванням дорівнює 120 років тому від поточного року.
??????? ???? | ???? ???? DateTime , string , timestamp ??? array
(???. ????? ???????? ) |
?????????????? ?? | ??? ???? ??????, 1 ??? 3 ????????? ????, ???????????? ?? ????? widget |
???????????? ???????????? ?? ????????????? | ???? ?????, ??????? ??????? ???? ??????????. |
???????????? ??? | DateType |
???? | BirthdayType |
Дата оновлення перекладу 2025-02-21
Tip
Повний список опцій, визначених та успадкованих цим типом форми, доступний шляхом виконання цієї команди у вашому додатку:
1 2
# замініть 'FooType' імʼям класу вашого типу форми
$ php bin/console debug:form FooType
Перевизначені опції
Дата оновлення перекладу 2025-02-24
invalid_message
тип: string
за замовчуванням: Це значення не є валідним значение не валидно
Це повідомлення помилки валідації, яке використовується, якщо дані, введені у це поле, не мають сенсу (тобто валідація проходить невдало).
Це може трапитися, наприклад, якщо користувач вводить у поле
TimeType асбурдний рядок, який
не може бути конвертований в даний час, або якщо користувач вводить
рядок (наприклад, apple
) у числове поле.
Нормальна (програмний код) валідація (наприклад, встановлення мінімальної довжини для поля), має бути встановлена з використанням повідомлень валідації з вашими правилами валідації (довідник ).
years
тип: array
за замовчуванням: 120 років тому від поточного року
Список років, доступних у типі поля рік. Ця опція має значення лише коли
опція widget
встановлена як choice
.
Успадковані опції
Ці опції наслідуються з DateType:
Дата оновлення перекладу 2022-12-21
Ця опція визначає, чи мають значення виборів бути перекладені та у якому домені перекладів.
Значення опції choice_translation_domain
можуть бути true
(повторно використати
поточний домен перекладів), false
(відключити переклад), null
(використовує
батьківський домен перекладів або домен за замовчуванням) або рядок, який представляє
точний домен перекладів для використання.
Дата оновлення перекладу 2025-02-24
days
тип: array
за замовчуванням: від 1 до 31
Список днів, доступних в типі поля день. Ця опція застосовується лише тоді,
коли опція widget
встановлена як choice
:
1
'days' => range(1,31)
placeholder
тип: string
| array
Якщо ваша опція віджету встановлена як choice
, то це поле буде представлено як
набір полів вибору select
. Коли значення заповнювача є рядком, воно буде використано
в якості порожнього значення всіх полів вибору:
1 2 3
$builder->add('birthdate', BirthdayType::class, [
'placeholder' => 'Select a value',
]);
Як варіант, ви можете використати масив, який конфігурує різні значення заповнювачів для полів року, місяця та дня:
1 2 3 4 5
$builder->add('birthdate', BirthdayType::class, [
'placeholder' => [
'year' => 'Year', 'month' => 'Month', 'day' => 'Day',
],
]);
Дата оновлення перекладу 2025-02-24
format
тип: integer
або string
за замовчуванням: IntlDateFormatter::MEDIUM
(або yyyy-MM-dd
, якщо widget - single_text
)
Опція, передана класу IntlDateFormatter
, використовується для перетворення
введення користувача на правильний формат. Це критично, коли опція widget встановлена
як single_text
і визначатиме, як користувач вводитиме дані.
За замовчуванням, формат визначається, ґрунтуючись на локалі поточного користувача:
це означає, що очікуваний формат буде відрізнятися для різних користувачів. Ви
можете перевизначити це, передавши формат в якості рядка.
Щоб дізнатися більше про валідні формати, див. Синтаксис формату Date/Time:
1 2 3 4 5 6 7 8
use Symfony\Component\Form\Extension\Core\Type\DateType;
// ...
$builder->add('dateCreated', DateType::class, [
'widget' => 'single_text',
// Це насправді формат за замовчуванням для single_text
'format' => 'yyyy-MM-dd',
));
Note
Якщо ви хочете, щоб ваше поле відображалося, як поле "даних" HTML5,
то вам потрібно використовувати віджет single_text
з форматом yyyy-MM-dd
(формат RFC 3339), який є значенням за замовчуванням, якщо ви
використовуєте віджет single_text
.
Дата оновлення перекладу 2025-02-24
input
тип: string
за замовчуванням: datetime
Формат даних введення - тобто, формат, в якому зберігаються дані вашого вихідного обʼєкта. Валідні значення:
string
(наприклад,2011-06-05
)datetime
(обʼєктDateTime
)datetime_immutable
(обʼєктDateTimeImmutable
object)array
(наприклад,array('year' => 2011, 'month' => 06, 'day' => 05)
)timestamp
(наприклад,1307232000
)
Значення, яке повертається з форми, також буде нормалізовано назад до цього формату.
Дата оновлення перекладу 2025-01-15
Warning
Якщо використано timestamp
, DateType
обмежуєтья датами між пʼятницею,
13 грудня 1901 року 20:45:54 UTC та вівторком, 19 січня 2038 року 03:14:07 UTC
у 32-бітних системах. Це через баг переповнення цілими числами у 32-бітних
системах, відомий як Проблема 2038 року.
Дата оновлення перекладу 2025-02-24
input_format
тип: string
за замовчуванням: Y-m-d
Дата оновлення перекладу 2022-12-21
Якщо опція input
встановлена як string
, ця опція вказує формат дати.
Це має бути валідним PHP-форматом дат.
Дата оновлення перекладу 2024-05-30
model_timezone
тип: string
за замовчуванням: часовий пояс системи за замовчуванням
Часовий пояс, в якому зберігаються вхідні дані. Це має бути один з часових поясів підтримуваних PHP.
Дата оновлення перекладу 2025-02-24
months
тип: array
за замовчуванням: від 1 до 12
Список місяців, доступних типу поля місяць. Ця опція застосовується лише тоді, коли
опція widget
встановлена як choice
.
Дата оновлення перекладу 2025-02-22
view_timezone
тип: string
за замовчуванням: часовий пояс системи за замовчуванням
Часовий пояс для відображення даних користувачу (а, відповідно, і даних, які користувач відправляє). Це має бути один з часових поясів, що підтримуються PHP.
Дата обновления перевода 2023-09-25
widget
Дата оновлення перекладу 2024-05-29
тип: string
за замовчуванням: single_text
Основний спосіб відображення цього поля. Це може бути один з наступних способів:
choice
: відображає три вводи вибору. Порядок виборів визначається в опції format.text
: відображає три поля вводу типуtext
(місяць, день, рік).single_text
: відображає одне поле вводу типуdate
. Введення користувача валідується на основі опції format.
Ці опції успадковано з FormType:
Дата оновлення перекладу 2025-02-21
attr
тип: array
за замовчуванням: []
Якщо ви хочете додати додаткові атрибути до HTML представлення поля, то
ви можете використовувати опцію attr
. Це асоціативний масив із HTML-атрибутами
в якості ключів. Це може бути корисно, коли вам потрібно встановити для деякого
віджета користувацький клас:
1 2 3
$builder->add('body', TextareaType::class, [
'attr' => ['class' => 'tinymce'],
]);
See also
Використовуйте опцію row_attr
, якщо ви хочете додати ці атрибути до
елементу рядку типу форми .
Дата оновлення перекладу 2025-01-15
data
тип: mixed
за замовчуванням: За замовчуванням - поле вихідної структури.
Коли ви створюєте форму, кожне поле спочатку відображає значення
відповідної властивості доменних даних форми (наприклад, якщо ви прив'язуєте об'єкт
до форми). Якщо ви хочете замінити це початкове значення для форми або окремого поля,
ви можете задати його в опції даних:
1 2 3 4 5 6
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
// ...
$builder->add('token', HiddenType::class, [
'data' => 'abcdef',
]);
Warning
Опція data
завжди перевизначає значення, взяте з даних домену
(об'єкта) під час відображення. Це означає, що значення об'єкта також перевизначається,
коли форма редагує вже збережений об'єкт, що призводить до втрати
збереженого значення, коли форма буде відправлена.
Дата обновления перевода 2025-02-24
disabled
тип: boolean
по умолчанию: false
Если вы не хотите, чтобы пользователь изменял значение поля, то вы можете установить опцию отключения, как "true". Любые отправленные данные будут проигнорированы.
Дата оновлення перекладу 2024-05-30
help
тип: string
або TranslatableInterface
за замовчуванням: null
Дозволяє вам визначити повідомлення допомоги для поля форми, яке за замовчуванням відображається під полем:
1 2 3 4 5 6 7 8 9 10 11 12 13
use Symfony\Component\Translation\TranslatableMessage;
$builder
->add('zipCode', null, [
'help' => 'The ZIP/Postal code for your credit card\'s billing address.',
])
// ...
->add('status', null, [
'help' => new TranslatableMessage('order.status', ['%order_id%' => $order->getId()], 'store'),
])
;
Дата оновлення перекладу 2025-02-24
help_attr
тип: array
за замовчуванням: []
Встановлює HTML-атрибути для елемента, що використовується для відображення повідомлення допомоги
у полі форми. Його значенням є асоціативним масивом з іменами HTML-атрибутів в якості ключів.
Ці атрибути також можуть бути встановлені в шаблоні:
1 2 3
{{ form_help(form.name, 'Your name', {
'help_attr': {'class': 'CUSTOM_LABEL_CLASS'}
}) }}
Дата оновлення перекладу 2025-02-24
help_html
тип: boolean
за замовчуванням: false
За замовчуванням, зміст опції help
екранується перед відображенням
у шаблоні. Встановіть для цієї опції значення true
, щоб не екранувати його, що може бути
корисно, якщо довідка містить HTML-елементи.
Дата оновлення перекладу 2025-01-15
inherit_data
тип: boolean
за замовчуванням: false
Ця опція визначає, чи буде форма успадковувати дані з батьківської форми. Це може бути корисно, якщо у вас є набір полів, які дублюються у декількох формах. Дивіться Як зменшити дублювання коду за допомогою "inherit_data".
Warning
Коли для поля встановлено опцію inherit_data
, воно використовує дані батьківської
форми як є. Це означає, що Перетворювачі даних не
будуть застосовуватися до цього поля.
Дата оновлення перекладу 2025-02-24
invalid_message_parameters
тип: array
за замовчуванням: []
При встановленні опції invalid_message
вам може знадобитися включити в рядок деякі
змінні. Це можна зробити, додавши заповнювачі в цю опцію, та включивши змінні в цій
опції:
1 2 3 4
$builder->add('someField', SomeFormType::class, [
// ...
'invalid_message' => 'Ви ввели невалідне значення, воно має містити %num% літер',
'invalid_message_parameters' => ['%num%' => 6],
Дата оновлення перекладу 2025-02-24
mapped
тип: boolean
за замовчуванням: true
Якщо ви хочете, щоб поле було проігноровано при читанні або записі в нього
обʼєкта, ви можете встановити опцію mapped
як false
.
Дата оновлення перекладу 2025-02-24
row_attr
тип: array
за замовчуванням: []
Асоціативний масив атрибутів HTML, що додаються до елементу, який використовується для відображення рядка типу форми :
1 2 3
$builder->add('body', TextareaType::class, [
'row_attr' => ['class' => 'text-editor', 'id' => '...'],
]);
See also
Використовуйте опцію attr
, якщо ви хочете додати ці атрибути до
елементу віджета типу форми .