跳到内容

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

另请参阅

如果您想将这些属性添加到 表单类型 widget 元素,请使用 attr 选项。

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本