Skip to content

ResetType Field

Edit this page

A button that resets all fields to their original values.

Rendered as input reset tag
Parent type ButtonType
Class ResetType

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

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:

1
2
3
4
5
6
use Symfony\Component\Form\Extension\Core\Type\ResetType;
// ...

$builder->add('save', ResetType::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 or TranslatableMessage 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:

1
{{ form_widget(form.save, { 'label': 'Click me' }) }}

label_format

type: string default: null

Configures the string used as the label of the field, in case the label option was not set. This is useful when using keyword translation messages.

If you're using keyword translation messages as labels, you often end up having multiple keyword messages for the same label (e.g. profile_address_street, invoice_address_street). This is because the label is built for each "path" to a field. To avoid duplicated keyword messages, you can configure the label format to a static value, like:

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%',
]);

This option is inherited by the child types. With the code above, the label of the street field of both forms will use the form.address.street keyword message.

Two variables are available in the label format:

%id%
A unique identifier for the field, consisting of the complete path to the field and the field name (e.g. profile_address_street);
%name%
The field name (e.g. street).

The default value (null) results in a "humanized" version of the field name.

Note

The label_format option is evaluated in the form theme. Make sure to update your templates in case you customized form theming.

label_html

type: boolean default: false

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.reset: 'Reset an order to %company%'

You can specify the placeholder values as follows:

1
2
3
4
5
6
7
8
9
use Symfony\Component\Form\Extension\Core\Type\ResetType;
// ...

$builder->add('send', ResetType::class, [
    'label' => 'form.order.reset',
    '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:

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.

priority

type: integer default: 0

Fields are rendered in the same order as they are included in the form. This option changes the field rendering priority, allowing you to display fields earlier or later than their original order.

This option will affect the view order only. The higher this priority, the earlier the field will be rendered. Priority can also be negative and fields with the same priority will keep their original order.

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.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version