Поле 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 ???? ????????? ?????? ?? ??.