发布于 2015-08-27 16:52:28 | 149 次阅读 | 评论: 0 | 来源: 网络整理
2.3 新版功能: The submit
type was introduced in Symfony 2.3
A submit button.
Rendered as | button submit tag |
Inherited options | |
Parent type | button |
Class | SubmitType |
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:
if ($form->get('save')->isClicked()) {
// ...
}
type: array default: Empty array
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:
$builder->add('save', 'button', array(
'attr' => array('class' => 'save'),
));
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.
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:
{{ form_widget(form.save, { 'label': 'Click me' }) }}
<?php echo $view['form']->widget($form['save'], array('label' => 'Click me')) ?>
type: array
default: array()
Sets the HTML attributes for the <label>
element, which will be used when
rendering the label for the field. It’s an associative array with HTML attribute
as a key. This attributes can also be directly set inside the template:
{{ form_label(form.name, 'Your name', {'label_attr': {'class': 'CUSTOM_LABEL_CLASS'}}) }}
echo $view['form']->label(
$form['name'],
'Your name',
array('label_attr' => array('class' => 'CUSTOM_LABEL_CLASS'))
);
type: string
default: messages
This is the translation domain that will be used for any labels or options that are rendered for this button.
type: array
default: 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:
$form = $this->createFormBuilder($user)
->add('previousStep', 'submit', array(
'validation_groups' => false,
))
->add('nextStep', 'submit', array(
'validation_groups' => array('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.
参见
You can read more about this in the Form chapter of the book.
Variable | Type | Usage |
---|---|---|
clicked | Boolean |
Whether the button is clicked or not. |