Поле SubmitType
Дата оновлення перекладу 2023-09-25
Поле SubmitType
Кнопка відправки.
?????????????? ?? | ??? button submit |
???????????? ??? | ButtonType |
???? | SubmitType |
Дата оновлення перекладу 2025-02-21
Tip
Повний список опцій, визначених та успадкованих цим типом форми, доступний шляхом виконання цієї команди у вашому додатку:
1 2
# замініть 'FooType' імʼям класу вашого типу форми
$ php bin/console debug:form FooType
Кнопка "Відправити" має додатковий метод isClicked(), який дозволяє перевірити, чи була ця кнопка використана для відправки форми. Це особливо корисно, коли форма має декілька кнопок відправки:
1 2 3
if ($form->get('save')->isClicked()) {
// ...
}
Опції
validate
тип: boolean
за замовчуванням: true
Встановіть цю опцію як false
, щоб вимкнути валідацію форми на стороні клієнта
що виконується браузером.
Успадковані опції
attr
тип: array
за замовчуванням: []
Якщо ви хочете додати додаткові атрибути до HTML-представлення кнопки,
ви можете скористатися опцією attr
. Це асоціативний масив з атрибутом HTML
в якості ключа. Це може бути корисно, коли вам потрібно задати для кнопки
користувацький клас:
1 2 3 4 5 6
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
// ...
$builder->add('save', SubmitType::class, [
'attr' => ['class' => 'save'],
]);
Дата оновлення перекладу 2025-02-22
disabled
тип: boolean
за замовчуванням: false
Якщо ви не хочете, щоб користувач міг натискати на кнопку, ви можете встановити опцію відключення, як "true". Надіслати форму без цієї кнопки буде неможливо, навіть шляхом обходу браузера і надсилання запиту вручну, наприклад, за допомогою cURL.
Дата оновлення перекладу 2024-05-29
label
тип: string
або TranslatableMessage
за замовчуванням: Ярлик "вгадується" з імені поля
Дозволяє задати ярлик, який буде відображатися на кнопці. Ярлик також можна встановити безпосередньо всередині шаблону:
1
{{ form_widget(form.save, { 'label': 'Click me' }) }}
Дата оновлення перекладу 2025-02-24
label_format
тип: string
за замовчуванням: null
Конфігурує рядок, що використовується як ярилк поля, у разі, якщо
опція label
не була встановлена. Це корисно під час використання
повідомлень перекладів ключових слів .
Якщо ви використовуєте повідомлення перекладів ключових слів як ярлики, то у
вас часто буде кілька повідомлень із ключовим словом для одного й того самого ярлика
(наприклад, profile_address_street
, invoice_address_street
). Це тому,
що ярлик будується для кожного "шляху" до поля. Щоб уникнути повтору повідомлень
ключових слів, ви можете конфігурувати формат ярлика як статичне
значення, наприклад:
1 2 3 4 5 6 7 8
// ...
$profileFormBuilder->add('address', AddressType::class, [
'label_format' => 'form.address.%name%',
]);
$invoiceFormBuilder->add('invoice', AddressType::class, [
'label_format' => 'form.address.%name%',
]);
Ця опція успадковується дочірніми типами. З використанням вищенаписаного коду,
ярлик поля street
обох форм буде використовувати повідомлення з ключовим словом
form.address.street
.
У форматі ярлика доступні дві змінні:
%id%
-
Унікальний ідентифікатор для поля, що складається з повного шляху до поля та імені
поля (наприклад,
profile_address_street
); %name%
-
Ім'я поля (наприклад,
street
).
Значення за замовчуванням (null
) призводить до
`«людської» версії імені поля.
Note
Опція label_format
оцінюється в темі форми. Переконайтеся в тому, що ви
оновили ваші щаблони, у разі, якщо ви налаштовували темізацію форм.
Дата оновлення перекладу 2025-02-22
translation_domain
тип: string
за замовчуванням: messages
Це домен перекладу, який буде використано для будь-яких ярликів або опцій,
які відображаються для цієї кнопки.
label_translation_parameters
тип: array
за замовчуванням: []
Зміст опції label перекладається перед відображенням, тому вона може містити заповнювачі перекладу . Ця опція визначає значення, які буде використано для заміни цих заповнювачів.
Якщо наведено таке повідомлення перекладу:
1 2
# translations/messages.en.yaml
form.order.submit_to_company: 'Send an order to %company%'
Ви можете вказати значення заповнювачів наступним чином:
1 2 3 4 5 6 7 8 9
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
// ...
$builder->add('send', SubmitType::class, [
'label' => 'form.order.submit_to_company',
'label_translation_parameters' => [
'%company%' => 'ACME Inc.',
],
]);
Опція label_translation_parameters
кнопок об'єднана з такою ж опцією своїх
батьків, тому кнопки можуть повторно використовувати та/або перевизначати будь-який
з батьківських заповнювачів.
attr_translation_parameters
type: array
default: []
The content of the title
and placeholder
values defined in the attr
option is translated before displaying it, so it can contain
translation placeholders . This
option defines the values used to replace those placeholders.
Given this translation message:
1 2 3
# translations/messages.en.yaml
form.order.id.placeholder: 'Enter unique identifier of the order to %company%'
form.order.id.title: 'This will be the reference in communications with %company%'
You can specify the placeholder values as follows:
1 2 3 4 5 6 7 8 9
$builder->add('id', null, [
'attr' => [
'placeholder' => 'form.order.id.placeholder',
'title' => 'form.order.id.title',
],
'attr_translation_parameters' => [
'%company%' => 'ACME Inc.',
],
]);
The attr_translation_parameters
option of children fields is merged with the
same option of their parents, so children can reuse and/or override any of the
parent placeholders.
Дата оновлення перекладу 2025-02-24
row_attr
тип: array
за замовчуванням: []
Асоціативний масив атрибутів HTML, що додаються до елементу, який використовується для відображення рядка типу форми :
1 2 3
$builder->add('body', TextareaType::class, [
'row_attr' => ['class' => 'text-editor', 'id' => '...'],
]);
See also
Використовуйте опцію attr
, якщо ви хочете додати ці атрибути до
елементу віджета типу форми .
validation_groups
тип: array
за замовчуванням: null
Якщо ваша форма містить декілька кнопок відправлення, ви можете змінити групу
валідації, засновуючись на кнопці, яка була використана для відправки форми.
Уявіть собі майстра форми реєстрації з кнопками для переходу до попереднього
або наступного кроку:
1 2 3 4 5 6 7 8 9 10 11
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
// ...
$form = $this->createFormBuilder($user)
->add('previousStep', SubmitType::class, [
'validation_groups' => false,
])
->add('nextStep', SubmitType::class, [
'validation_groups' => ['Registration'],
])
->getForm();
Спеціальне значення false
гарантує, що при натисканні кнопки попереднього кроку
валідація не виконується. При натисканні другої кнопки валідуються всі обмеження
з "Registration".
See also
Ви можете прочитати більше про це в Як обирати групи валідації, засновані на відправлених даних.
Змінні форми
?????? | ??? | ???????????? |
---|---|---|
clicked | boolean |
???? ????????? ?????? ?? ??. |