跳到內容

ButtonType 欄位

編輯此頁面

一個簡單、非響應式的按鈕。

渲染為 button 標籤
父類型
類別 ButtonType

提示

此表單類型定義和繼承的完整選項列表可透過在您的應用程式中執行此命令取得

1
2
# replace 'FooType' by the class name of your form type
$ php bin/console debug:form FooType

繼承的選項

以下選項定義在 BaseType 類別中。BaseType 類別是 button 類型和 FormType 的父類別,但它不是表單類型樹狀結構的一部分(即它不能單獨作為表單類型使用)。

attr

類型: array 預設: []

如果您想為按鈕的 HTML 呈現方式新增額外屬性,您可以使用 attr 選項。它是一個關聯陣列,其中 HTML 屬性作為鍵。當您需要為按鈕設定自訂類別時,這會很有用

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

$builder->add('save', ButtonType::class, [
    'attr' => ['class' => 'save'],
]);

disabled

類型: boolean 預設: false

如果您不希望使用者能夠點擊按鈕,您可以將 disabled 選項設定為 true。將無法使用此按鈕提交表單,即使繞過瀏覽器並手動發送請求(例如使用 cURL)也不行。

label

類型: stringTranslatableMessage 預設: 標籤會從欄位名稱「猜測」而來

設定將顯示在按鈕上的標籤。標籤也可以直接在範本中設定

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

label_html

類型: boolean 預設: false

預設情況下,label 選項的內容在範本中呈現之前會先逸出。將此選項設定為 true 以不逸出它們,這在標籤包含 HTML 元素時非常有用。

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\ButtonType;
// ...

$builder->add('send', ButtonType::class, [
    'label' => 'form.order.submit_to_company',
    'label_translation_parameters' => [
        '%company%' => 'ACME Inc.',
    ],
]);

按鈕的 label_translation_parameters 選項與其父選項的相同選項合併,因此按鈕可以重複使用和/或覆寫任何父預留位置。

attr_translation_parameters

類型: array 預設: []

attr 選項中定義的 titleplaceholder 值的內容在顯示之前會先翻譯,因此它可以包含翻譯預留位置。此選項定義用於替換這些預留位置的值。

假設有以下翻譯訊息

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%'

您可以如下指定預留位置值

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

子欄位的 attr_translation_parameters 選項與其父選項的相同選項合併,因此子欄位可以重複使用和/或覆寫任何父預留位置。

row_attr

類型: array 預設: []

HTML 屬性的關聯陣列,已新增至用於呈現表單類型列的元素

1
2
3
$builder->add('body', TextareaType::class, [
    'row_attr' => ['class' => 'text-editor', 'id' => '...'],
]);

另請參閱

如果您想將這些屬性新增至表單類型小工具元素,請使用 attr 選項。

本作品,包括程式碼範例,依創用 CC BY-SA 3.0 授權條款釋出。
TOC
    版本