Поле SubmitType
Поле SubmitType
Кнопка отправки.
???????????? ??? | ??? button submit |
??????????? ????? | |
???????????? ??? | ButtonType |
????? | SubmitType |
Кнопка отправки имеет дополнительный метод isClicked(), который позволяет вам проверять, была ли использована эта кнопка для отправки формы. Это особенно полезно, когда форма имеет несколько кнопок отправки:
1 2 3
if ($form->get('save')->isClicked()) {
// ...
}
Наследуемые опции
attr
тип: array
по умолчанию: array()
Есди вы хотите добавить дополнительные атрибуты к HTML-представлению кнопки, то
вы можете использовать опцию attr
. Это ассоциативный массив с HTML-атрибутом
в качестве ключа. Это может быть полезно, когда вам нужно установить для кнопки
пользовательский класс:
1 2 3 4 5 6
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
// ...
$builder->add('save', SubmitType::class, array(
'attr' => array('class' => 'save'),
));
disabled
тип: boolean
по умолчанию: false
Если вы не хотите, чтобы пользователь мог нажимать на кнопку, вы можете установить опцию отключения, как "true". Отправить форму без этой кнопки будет невозможно, даже путём обхода браузера и отправки запроса вручную, например, с помощью cURL.
label
тип: string
по умолчанию: Ярлык "угадывается" по имени поля
Устанавливает ярлык, который будет отображён на кнопке. Ярлык также может быть установлен напрямую внутри шаблона:
- Twig
- PHP
1
{{ form_widget(form.save, { 'label': 'Click me' }) }}
label_attr
тип: array
по умолчанию: array()
Устанавливает HTML-атрибуты для элемента <label>
, который будет использован
при отображении ярлыка для поля. Это ассоциативный массив с HTML-атрибутом в
качестве ключа. Этот атрибут может также быть установлен прямо внутри шаблона:
- Twig
- PHP
1 2 3
{{ form_label(form.name, 'Your name', {
'label_attr': {'class': 'CUSTOM_LABEL_CLASS'}
}) }}
label_format
тип: string
по умолчанию: null
Конфигурирует строку, используемую в качестве ярылка поля, в случае, если
опция label
не была установлена. Это полезно при использовании
сообщений переводов ключевых слов.
Если вы используете сообщения переводов ключевых слов в качестве ярлыков, то у
вас часто будет несколько сообщений с ключевым словом для одного и того же ярлыка
(например, profile_address_street
, invoice_address_street
). Это потому,
что ярлык строится для каждого "пути" к полю. Чтобы избежать повтора сообщений
ключевых слов, вы можете сконфигурировать формат ярлыка в качестве статичного
значения, например:
1 2 3 4 5 6 7 8
// ...
$profileFormBuilder->add('address', AddressType::class, array(
'label_format' => 'form.address.%name%',
));
$invoiceFormBuilder->add('invoice', AddressType::class, array(
'label_format' => 'form.address.%name%',
));
Эта опция наследуется дочерними типами. С использованием вышенаписанного кода,
ярлык поля street
обеих форм будет использовать сообщение с ключевым словом
form.address.street
.
В формате ярлыка доступны две переменные:
%id%
-
Уникальный идентификатор для поля, состоящий из полного пути к полю и имени
поля (например,
profile_address_street
); %name%
-
Имя поля (например,
street
).
Значение по умолчанию (null
) приводит к
"человеческой" версии имени поля.
Note
Опция label_format
оценивается в теме формы. Убедитесь в том, что вы
обновили ваши щаблоны, в случае, если вы настраивали темизацию форм.
translation_domain
тип: string
по умолчанию: messages
Это домен перевода, который будет использован для любых ярлыков или опций, которые отображаются для этой кнопки.
validation_groups
тип: array
по умолчанию: null
Когда ваша форма содержит несколько кнопок отправки, вы можете менять группу валидации, взависимости от того, какая кнопка была использована для отправки. Представьте себе мастера формы регистрации с кнопками, чтобы переходить на следующий или предыдущий шаг:
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, array(
'validation_groups' => false,
))
->add('nextStep', SubmitType::class, array(
'validation_groups' => array('Registration'),
))
->getForm();
Специальный false
гарантирует, что при нажатии кнопки предыдущего шага не
выполняется валидация. Когда нажимается вторая кнопка, валидируются все ограничения
из "Registration".
See also
Вы можете прочитьать больше об этом в Як обирати групи валідації, засновані на відправлених даних.
Переменные формы
?????????? | ??? | ?????????? |
---|---|---|
clicked | boolean |
???? ?? ?????? ??????. |