ButtonType Field¶
A simple, non-responsive button.
Rendered as | button tag |
Inherited options | |
Parent type | none |
Class | ButtonType |
Tip
The full list of options defined and inherited by this form type is available running this command in your app:
1 2 | # replace 'FooType' by the class name of your form type
$ php bin/console debug:form FooType
|
Inherited Options¶
The following options are defined in the
BaseType
class.
The BaseType
class is the parent class for both the button
type
and the FormType, but it is not part
of the form type tree (i.e. it cannot be used as a form type on its own).
attr
¶
type: array
default: []
If you want to add extra attributes to the HTML representation of the button,
you can use attr
option. It’s an associative array with HTML attribute
as a key. This can be useful when you need to set a custom class for the button:
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
// ...
$builder->add('save', ButtonType::class, [
'attr' => ['class' => 'save'],
]);
disabled
¶
type: boolean
default: false
If you don’t want a user to be able to click a button, you can set the disabled option to true. It will not be possible to submit the form with this button, not even when bypassing the browser and sending a request manually, for example with cURL.
label
¶
type: string
default: The label is “guessed” from the field name
Sets the label that will be displayed on the button. The label can also be directly set inside the template:
- Twig
1
{{ form_widget(form.save, { 'label': 'Click me' }) }}
- PHP
1
<?= $view['form']->widget($form['save'], ['label' => 'Click me']) ?>
label_html
¶
type: bool
default: false
New in version 5.1: The label_html
option was introduced in Symfony 5.1.
By default, the contents of the label
option are escaped before rendering
them in the template. Set this option to true
to not escape them, which is
useful when the label contains HTML elements.
translation_domain
¶
type: string
default: messages
This is the translation domain that will be used for any labels or options that are rendered for this button.
label_translation_parameters¶
type: array
default: []
The content of the label 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 | # translations/messages.en.yaml
form.order.submit_to_company: 'Send an order to %company%'
|
You can specify the placeholder values as follows:
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
// ...
$builder->add('send', ButtonType::class, [
'label' => 'form.order.submit_to_company',
'label_translation_parameters' => [
'%company%' => 'ACME Inc.',
],
]);
The label_translation_parameters
option of buttons is merged with the same
option of its parents, so buttons can reuse and/or override any of the parent
placeholders.
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:
$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:
$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
the form type widget element.