Поле SubmitType
Дата оновлення перекладу 2023-09-25
Поле SubmitType
Кнопка відправки.
?????????????? ?? | ??? button submit |
???????????? ??? | ButtonType |
???? | SubmitType |
Дата оновлення перекладу 2022-12-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'],
]);
disabled
тип: boolean
по умолчанию: false
Если вы не хотите, чтобы пользователь мог нажимать на кнопку, вы можете установить опцию отключения, как "true". Отправить форму без этой кнопки будет невозможно, даже путём обхода браузера и отправки запроса вручную, например, с помощью cURL.
Дата оновлення перекладу 2024-05-29
label
тип: string
або TranslatableMessage
за замовчуванням: Ярлик "вгадується" з імені поля
Дозволяє задати ярлик, який буде відображатися на кнопці. Ярлик також можна встановити безпосередньо всередині шаблону:
1
{{ form_widget(form.save, { 'label': 'Click me' }) }}
label_format
тип: string
по умолчанию: null
Конфигурирует строку, используемую в качестве ярылка поля, в случае, если
опция label
не была установлена. Это полезно при использовании
сообщений переводов ключевых слов .
Если вы используете сообщения переводов ключевых слов в качестве ярлыков, то у
вас часто будет несколько сообщений с ключевым словом для одного и того же ярлыка
(например, profile_address_street
, invoice_address_street
). Это потому,
что ярлык строится для каждого "пути" к полю. Чтобы избежать повтора сообщений
ключевых слов, вы можете сконфигурировать формат ярлыка в качестве статичного
значения, например:
1 2 3 4 5 6 7 8
// ...
$profileFormBuilder->add('address', AddressType::class, array(
'label_format' => 'form.address.%name%',
));
$invoiceFormBuilder->add('invoice', AddressType::class, array(
'label_format' => 'form.address.%name%',
));
Эта опция наследуется дочерними типами. С использованием вышенаписанного кода,
ярлык поля street
обеих форм будет использовать сообщение с ключевым словом
form.address.street
.
В формате ярлыка доступны две переменные:
%id%
-
Уникальный идентификатор для поля, состоящий из полного пути к полю и имени
поля (например,
profile_address_street
); %name%
-
Имя поля (например,
street
).
Значение по умолчанию (null
) приводит к
"человеческой" версии имени поля.
Note
Опция label_format
оценивается в теме формы. Убедитесь в том, что вы
обновили ваши щаблоны, в случае, если вы настраивали темизацию форм.
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.
row_attr
type: array
default: []
An associative array of the HTML attributes added to the element which is used to render the form type row :
1 2 3
$builder->add('body', TextareaType::class, [
'row_attr' => ['class' => 'text-editor', 'id' => '...'],
]);
See also
Use the attr
option if you want to add these attributes to
the form type widget element.
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 |
???? ????????? ?????? ?? ??. |