Поле DateIntervalType
Дата оновлення перекладу 2025-01-15
Поле DateIntervalType
Це поле дозволяє користувачеві обрати інтервал часу. Наприклад, якщо ви хочете дозволити користувачеві вибирати, як часто він отримуватиме лист зі статусом, він може використовувати це поле для вибору інтервалів, наприклад, кожні "10 хвилин" або "3 дні".
Поле може бути відображене у різні способи (див. widget) і може бути сконфігуроване так, щоб
надавати вам об'єкт DateInterval
, рядок тривалості ISO 8601 (наприклад, P1DT12H
)
або масив (див. input).
???????? ??? ????? | ???? ???? DateInterval , ?????? ??? ??????? (???. ????? input ) |
?????????????? ?? | ???? ???????? ????, ???????? ????????? ????? ??? ????? ?????? - ???. ????? widget |
???????????? ???????????? ?? ????????????? | ???? ?????, ??????? ???????? ???????? ???. |
???????????? ??? | FormType |
???? | DateIntervalType |
Дата оновлення перекладу 2025-02-21
Tip
Повний список опцій, визначених та успадкованих цим типом форми, доступний шляхом виконання цієї команди у вашому додатку:
1 2
# замініть 'FooType' імʼям класу вашого типу форми
$ php bin/console debug:form FooType
Базове використання
Цей тип поля дуже добре налаштовується. Найважливішими опціями є input та widget.
Ви можете сконфігурувати безліч різних опцій, зокрема який саме діапазон показувати (наприклад, не показувати "місяці", але показувати "дні"):
1 2 3 4 5 6 7 8 9 10
$builder->add('remindEvery', DateIntervalType::class, [
'widget' => 'integer', // відобразити текстове поле для кожної частини
// 'input' => 'string', // якщо ви хочете, щоб поле повертало вам рядок ISO 8601
// налаштуйте, які текстові поля відображаються
'with_years' => false,
'with_months' => false,
'with_days' => true,
'with_hours' => true,
]);
Опції поля
days
тип: array
за замовчуванням: від 0 до 31
Список днів, доступних для типу поля "дні". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 30 (включно)
'days' => range(1, 31),
// значення, відображені користувачеві, мають діапазон від 0 до 31 (включно)
'days' => array_combine(range(1, 31), range(1, 31)),
placeholder
тип: string
або array
Якщо ваш віджет встановлено як choice
, то це поле буде представлено
у вигляді серії полів select
. Опцію placeholder
можна використовувати для того,
щоб додати "порожній" запис у верхній частині кожного поля вибору:
1 2 3
$builder->add('remindEvery', DateIntervalType::class, [
'placeholder' => '',
]);
Як варіант, ви можете вказати рядок для відображення для "порожнього" значення:
1 2 3
$builder->add('remindEvery', DateIntervalType::class, [
'placeholder' => ['years' => 'Years', 'months' => 'Months', 'days' => 'Days'],
]);
hours
тип: array
за замовчуванням: від 0 до 24
Список годин, доступних для типу поля "години". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 23 (включно)
'hours' => range(1, 24),
// значення, відображені користувачеві, мають діапазон від 0 до 24 (включно)
'hours' => array_combine(range(1, 24), range(1, 24)),
input
тип: string
за замовчуванням: dateinterval
Формат даних введення - тобто формат, у якому зберігається інтервал у вашому базовому об'єкті. Допустимими значеннями є:
string
(рядок, відформатований за стандартом ISO 8601, наприклад,P7Y6M5DT12H15M30S
)dateinterval
(обʼєктDateInterval
)array
(наприклад,['days' => '1', 'hours' => '12',]
)
Значення, яке повертається з форми, також буде нормалізовано назад у цей формат.
labels
тип: array
за замовчуванням: (див. нижче)
Ярлики, що відображаються для кожного з елементів цього типу. Значення за замовчуванням
є null
, тому вони відображають "олюднену версію" дочірніх імен (Invert
,
Роки
і т.д.):
1 2 3 4 5 6 7 8 9 10
'labels' => [
'invert' => null,
'years' => null,
'months' => null,
'weeks' => null,
'days' => null,
'hours' => null,
'minutes' => null,
'seconds' => null,
]
minutes
тип: array
за замовчуванням: від 0 до 60
Список хвилин, доступних для типу поля "хвилини". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 59 (включно)
'minutes' => range(1, 60),
// значення, відображені користувачеві, мають діапазон від 0 до 60 (включно)
'minutes' => array_combine(range(1, 60), range(1, 60)),
months
тип: array
за замовчуванням: від 0 до 12
Список місяців, доступних для типу поля "місяці". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 11 (включно)
'months' => range(1, 12),
// значення, відображені користувачеві, мають діапазон від 0 до 12 (включно)
'months' => array_combine(range(1, 12), range(1, 12)),
seconds
тип: array
за замовчуванням: від 0 до 60
Список секунд, доступних для типу поля "секунди". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 59 (включно)
'seconds' => range(1, 60),
// значення, відображені користувачеві, мають діапазон від 0 до 60 (включно)
'seconds' => array_combine(range(1, 60), range(1, 60)),
weeks
тип: array
за замовчуванням: від 0 до 52
Список тижнів, доступних для типу поля "тижні". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 51 (включно)
'weeks' => range(1, 52),
// значення, відображені користувачеві, мають діапазон від 0 до 52 (включно)
'weeks' => array_combine(range(1, 52), range(1, 52)),
widget
тип: string
за замовчуванням: choice
Основний спосіб відображення цього поля. Це може бути один з наступних способів:
choice
: відображає від одного до шести полів вибору для років, місяців, тижнів, днів, годин, хвилин та/або секунд, залежно від опцій with_years, with_months, with_weeks, with_days, with_hours, with_minutes та with_seconds. За замовчуванням: Три поля для років, місяців і днів.text
: відображає від одного до шести текстових полів введеня для років, місяців, тижнів, днів, годин, хвилин та/або секунд, залежно від with_years, with_months, with_weeks, with_days, with_hours, with_minutes та with_seconds варіанти. За замовчуванням: Три поля для років, місяців і днів.integer
: відображає від одного до шести введеня цілих чисел для років, місяців, тижнів, днів, годин, хвилин та/або секунд, залежно від опцій with_years, with_months, with_weeks, with_days, with_hours, with_minutes та with_seconds. За замовчуванням: Три поля для років, місяців і днів.single_text
: відображає одне введення типуtext
. Введення користувача буде валідовано на відповідність форміPnYnMnDTnHnMnS
(абоPnW
, якщо використовуються тільки тижні).
with_days
тип: Boolean
за замовчуванням: true
Чи включати дні у введення. Це призведе до додаткового введеня для фіксації днів.
Warning
Це не можна використовувати, якщо ввімкнено with_weeks.
with_hours
тип: Boolean
за замовчуванням: false
Чи включати години у введення. Це призведе до додаткового введеня для фіксації годин.
with_invert
тип: Boolean
за замовчуванням: false
Чи включати інверсію у введення. Це призведе до додаткового чекбоксу.
Це не можна використовувати, якщо опція widget встановллена як single_text
.
with_minutes
тип: Boolean
за замовчуванням: false
Чи включати хвилини у введення. Це призведе до додаткового введеня для фіксації хвилин.
with_months
тип: Boolean
за замовчуванням: true
Чи включати місяці у введення. Це призведе до додаткового введеня для фіксації місяців.
with_seconds
тип: Boolean
за замовчуванням: false
Чи включати секунди у введення. Це призведе до додаткового введеня для фіксації секунд.
with_weeks
тип: Boolean
за замовчуванням: false
Чи включати тижні у введення. Це призведе до додаткового введеня для фіксації тижнів.
Warning
Це не можна використовувати, якщо ввімкнено with_days.
with_years
тип: Boolean
за замовчуванням: true
Чи включати роки у введення. Це призведе до додаткового введеня для фіксації років.
years
тип: array
за замовчуванням: від 0 до 100
Список років, доступних для типу поля "роки". Ця опція актуальна лише
коли опція widget
має значення choice
:
1 2 3 4 5
// значення, відображені користувачеві, мають діапазон від 0 до 99 (включно)
'years' => range(1, 100),
// значення, відображені користувачеві, мають діапазон від 0 до 100 (включно)
'years' => array_combine(range(1, 100), range(1, 100)),
Перевизначені опції
Дата оновлення перекладу 2025-02-24
invalid_message
тип: string
за замовчуванням: Це значення не є валідним значение не валидно
Це повідомлення помилки валідації, яке використовується, якщо дані, введені у це поле, не мають сенсу (тобто валідація проходить невдало).
Це може трапитися, наприклад, якщо користувач вводить у поле
TimeType асбурдний рядок, який
не може бути конвертований в даний час, або якщо користувач вводить
рядок (наприклад, apple
) у числове поле.
Нормальна (програмний код) валідація (наприклад, встановлення мінімальної довжини для поля), має бути встановлена з використанням повідомлень валідації з вашими правилами валідації (довідник ).
Успадковані опції
Ці опції наслідуються з типу form:
Дата оновлення перекладу 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
, якщо ви хочете додати ці атрибути до
елементу віджета типу форми .
Змінні поля
?????? | ??? | ???????????? |
---|---|---|
widget |
mixed |
???????? ????? widget. |
with_days |
Boolean |
???????? ????? with_days. |
with_invert |
Boolean |
???????? ????? with_invert. |
with_hours |
Boolean |
???????? ????? with_hours. |
with_minutes |
Boolean |
???????? ????? with_minutes. |
with_months |
Boolean |
???????? ????? with_months. |
with_seconds |
Boolean |
???????? ????? with_seconds. |
with_weeks |
Boolean |
???????? ????? with_weeks. |
with_years |
Boolean |
???????? ????? with_years. |