SubmitType Field

A submit button.

送信ボタン。
Rendered as button submit tag
Parent type ButtonType
Class SubmitType

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

The Submit button has an additional method isClicked() that lets you check whether this button was used to submit the form. This is especially useful when a form has multiple submit buttons:

[送信] ボタンには、このボタンがフォームの送信に使用されたかどうかを確認できる追加のメソッド isClicked() があります。これは、フォームに複数の送信ボタンがある場合に特に役立ちます。
1
2
3
if ($form->get('save')->isClicked()) {
    // ...
}

Options

validate

type: boolean default: true

タイプ: ブール デフォルト: true

Set this option to false to disable the client-side validation of the form performed by the browser.

このオプションを false に設定すると、ブラウザによって実行されるフォームのクライアント側の検証が無効になります。

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:

ボタンの 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

type: boolean default: false

タイプ: ブール値デフォルト: 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.

ユーザーがボタンをクリックできないようにするには、disabled オプションを true に設定します。このボタンを使用してフォームを送信することはできません。ブラウザーをバイパスして、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
    小枝
  • PHP
    PHP
1
{{ form_widget(form.save, { 'label': 'Click me' }) }}

label_format

type: string default: null

タイプ: 文字列 デフォルト: 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.

label オプションが設定されていない場合に、フィールドのラベルとして使用される文字列を構成します。これは、キーワード翻訳メッセージを使用する場合に便利です。

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:

キーワード翻訳メッセージをラベルとして使用している場合、同じラベルに複数のキーワード メッセージが含まれることがよくあります (例: profile_address_street,invoice_address_street)。これは、フィールドへの「パス」ごとにラベルが作成されるためです。キーワード メッセージの重複を避けるために、次のように labelformat を静的な値に設定できます。
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.

このオプションは子タイプに継承されます。上記のコードでは、両方のフォームのストリート フィールドのラベルが form.address.street キーワード メッセージを使用します。

Two variables are available in the label format:

ラベル形式では、次の 2 つの変数を使用できます。
%id%
A unique identifier for the field, consisting of the complete path to the field and the field name (e.g. profile_address_street);
フィールドへの完全なパスとフィールド名 (例: profile_address_street) で構成される、フィールドの一意の識別子。
%name%
The field name (e.g. street).
フィールド名 (通りなど)。

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

デフォルト値 (null) は、フィールド名の「人間化された」バージョンになります。

Note

ノート

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

label_format オプションは、フォーム テーマで評価されます。フォームのテーマをカスタマイズした場合は、必ずテンプレートを更新してください。

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.

label オプションのコンテンツは表示前に翻訳されるため、翻訳プレースホルダーを含めることができます。このオプションは、これらのプレースホルダーを置き換えるために使用される値を定義します。

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:

プレースホルダー値は次のように指定できます。
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.',
    ],
]);

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.

ボタンの 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.

子フィールドの attr_translation_parameters オプションは、親の同じオプションとマージされるため、子は親のプレースホルダーを再利用および/またはオーバーライドできます。

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:

フォーム タイプの行をレンダリングするために使用される要素に追加される HTML 属性の連想配列:
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.

これらの属性をフォーム タイプのウィジェット要素に追加する場合は、attr オプションを使用します。

validation_groups

type: array default: null

タイプ: 配列 デフォルト: null

When your form contains multiple submit buttons, you can change the validation group based on the button which was used to submit the form. Imagine a registration form wizard with buttons to go to the previous or the next step:

フォームに複数の送信ボタンが含まれている場合、フォームの送信に使用されたボタンに基づいて検証グループを変更できます。前または次のステップに進むためのボタンを備えた登録フォーム ウィザードを想像してみてください。
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();

The special false ensures that no validation is performed when the previous step button is clicked. When the second button is clicked, all constraints from the "Registration" are validated.

特別な false は、previousstep ボタンがクリックされたときに検証が実行されないようにします。 2 番目のボタンをクリックすると、「登録」からのすべての制約が有効になります。

See also

こちらもご覧ください

You can read more about this in How to Choose Validation Groups Based on the Submitted Data.

詳細については、提出されたデータに基づいて検証グループを選択する方法を参照してください。

Form Variables

Variable Type Usage
clicked boolean Whether the button is clicked or not.