Поле RadioType
Дата обновления перевода 2025-02-05
Поле RadioType
Создаёт одну селективную кнопку. Если выбрана эта кнопка, то поле будет установлено, как определённое значение. С селективных кнопок нельзя снять выбор - значение изменяется только тогда, когда выбирается другая кнопка с таким же именем.
RadioType
обычно не используется напрямую. Чаще она используется внутренне
другими типами вроде ChoiceType. Если вы
хотите иметь будево поле, используйте CheckboxType.
???????????? ??? | ???? input radio |
????????? ???????????? ?? ????????? | ??????????, ???????? ???????? ?????. |
???????????? ??? | CheckboxType |
????? | RadioType |
Дата обновления перевода 2025-02-21
Tip
Полный список опций, определенных и унаследованных этим типом формы, доступен путем
выполнения этой команды в вашем приложении:
1 2
# замените 'FooType' именем класса вашего типа формы
$ php bin/console debug:form FooType
Переопределённые опции
Дата обновления перевода 2025-02-24
invalid_message
тип: string
по умолчанию: Это значение не валидно
Это сообщение ошибки валидации, которое используется, если данные, введенные в это поле, не имеют смысла (т.е. валидация проходит неудачно).
Это может случиться, к примеру, если пользователь вводит в поле
TimeType асбурдную строку, которая
не может быть конвертирована в настоящее время, или если пользователь вводит
строку (например, apple
) в числовое поле.
Нормальная (программный код) валидация (например, установка минимальной длины для поля), должна быть установлена с использованием сообщений валидации с вашими правилами валидации (справочник ).
Наследуемые опции
Эти опции наследуются из CheckboxType:
Дата обновления перевода 2025-02-05
value
тип: mixed
по умолчанию: 1
Значение, которое на самом деле используется, как значения для чекбокса или селективной кнопки. Не влияет на значение, установленное в вашем объекте.
Warning
Чтобы сделать чекбокс или селективную кнопку отмеченными по умолчанию, используйте опцию data.
Эти опции наследуются из FormType:
Дата обновления перевода 2025-02-21
attr
тип: array
по умолчанию: []
Если вы хотите добавить дополнительные атрибуты к HTML представлению поля, то
вы можете использовать опцию attr
. Это ассоциативный массив с HTML-атрибутами
в качестве ключей. Этоможет быть полезно, когда вам нужно установить для некоторого
виджета пользовательский класс:
1 2 3
$builder->add('body', TextareaType::class, [
'attr' => ['class' => 'tinymce'],
]);
See also
Используйте опцию row_attr
, если вы хотите добавить эти атрибуты к
к элементу строки типа формы
Дата обновления перевода 2025-02-05
data
тип: mixed
по умолчанию : По умолчанию является полем основоположной структуры.
Когда вы создаёте форму, каждое поле изначально отображает значение соотствующего свойства данных домена формы (например, если вы привязываете объект к форме). Если вы хотите переопределить эти изначальные значения для формы или индивидуального поля, вы можете установить это в опции данных:
1 2 3 4 5 6
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
// ...
$builder->add('token', HiddenType::class, array(
'data' => 'abcdef',
));
Warning
Опция data
всегда переопределяет значение, взятое из данных домена (объекта)
при отображении. Это означает, что значение объекта также переопределяется, когда
форма редактирует уже существующий сохранённый объект, что приводит к потере
сохранённого значения при отправке формы.
Дата обновления перевода 2025-02-24
disabled
тип: boolean
по умолчанию: false
Если вы не хотите, чтобы пользователь изменял значение поля, то вы можете установить опцию отключения, как "true". Любые отправленные данные будут проигнорированы.
Дата обновления перевода 2025-02-22
empty_data
тип: string
по умолчанию: mixed
Эта опция определяет, какое значение вернёт поле, когда выбран вариант placeholder
.
В чекбоксе и селективной кнопке, значение empty_data
переопределяется значением,
возвращённым преобразователем данных (см. Как использовать преобразователи данных).
Дата обновления перевода 2025-02-24
error_bubbling
тип: boolean
по умолчанию: false
, кроме случаев, когда форма compound
Если true
, то любые ошибки в этом поле будут переданы родительскому
полю или форме. Например, если установлена, как true
в нормальном
поле, то любые ошибки для этого поля будут присоединены к главной форме,
а не к конкретному полю.
Дата обновления перевода 2024-07-26
error_mapping
тип: array
по умолчанию: []
Эта опция позволяет вам изменять цель ошибки валидации.
Представьте, что у вас есть пользовательский метод под именем matchingCityAndZipCode()
,
который валидирует, совпадает ли город и почтовый индекс. К сожалению, поля
"matchingCityAndZipCode" в вашей форме нет, поэтому всё, что Symfony может сделать -
это отобразить ошибку наверху формы.
С настроенным отображением ошибок вы можете сделать лучше: привяжите ошибку к полю города, чтобы она отображалась над ним:
1 2 3 4 5 6 7 8
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'error_mapping' => [
'matchingCityAndZipCode' => 'city',
],
]);
}
Вот правила для лево- и правостороннего отображения:
- Левая сторона содержит пути свойств;
- Если нарушение генерируется в свойстве или методе класса, то его путь - это
просто
propertyName
; - Если нарушение сгенерировано в записи объекта
array
илиArrayAccess
,
то путь свойства будет[indexName]
; * Вы можете создать вложенные пути свойств, соединив их, разделяя свойства точками. Например:addresses[work].matchingCityAndZipCode
; - Правая сторона содержит просто имена полей в форме.
По умолчанию, ошибки любого свойства, которое не отображенно, соберутся в
родительской форме. Вы можете использовать точку (.
) в левой части, чтобы
привязать ошибки всех неотображённых свойств к конкретному полю. Например,
чтобы привязать эти ошибки к полю city
, используйте:
1 2 3 4 5
$resolver->setDefaults([
'error_mapping' => [
'.' => 'city',
],
]);
Дата обновления перевода 2024-07-26
help
тип: string
или TranslatableInterface
по умолчанию: null
Позволяет вам определять сообщение помощи для поля формы, которое по умолчанию отображается под полем:
1 2 3 4 5 6 7 8 9 10 11 12 13
use Symfony\Component\Translation\TranslatableMessage;
$builder
->add('zipCode', null, [
'help' => 'The ZIP/Postal code for your credit card\'s billing address.',
])
// ...
->add('status', null, [
'help' => new TranslatableMessage('order.status', ['%order_id%' => $order->getId()], 'store'),
])
;
Дата обновления перевода 2025-02-24
help_attr
тип: array
по умолчанию: []
Устанавливает HTML-атрибуты для элемента, используемого для отображения сообщения помощи в поле формы. Его значение представляет собой ассоциативный массив с именами HTML-атрибутов в качестве ключей. Эти атрибуты также могут быть заданы в шаблоне:
1 2 3
{{ form_help(form.name, 'Your name', {
'help_attr': {'class': 'CUSTOM_LABEL_CLASS'}
}) }}
Дата обновления перевода 2025-02-24
help_html
тип: boolean
по умолчанию: false
По умолчанию содержание опции help
экранируется перед отображением в шаблоне.
Установите для этой опции значение true
, чтобы не экранировать их, что полезно,
когда справка содержит элементы HTML.
Дата обновления перевода 2023-01-12
label
тип: string
или TranslatableMessage
по умолчанию: Ярлык "угадывается" из имени поля
Устанавливает ярлык, который будет использован при отображении поля. Установка, как "false" подавит ярлык:
1 2 3 4 5 6 7 8
use Symfony\Component\Translation\TranslatableMessage;
$builder
->add('zipCode', null, [
'label' => 'The ZIP/Postal code',
// по желанию, вы можете использовать объекты TranslatableMessage как содержание ярлыка
'label' => new TranslatableMessage('address.zipCode', ['%country%' => $country], 'address'),
])
Ярлык также может быть установлен внутри шаблона:
1
{{ form_label(form.name, 'Your name') }}
Дата обновления перевода 2025-02-24
label_attr
тип: array
по умолчанию: []
Устанавливает HTML-атрибуты для элемента <label>
, который будет использован
при отображении ярлыка для поля. Это ассоциативный массив с HTML-атрибутом в
качестве ключа. Этот атрибут может также быть установлен прямо внутри шаблона:
1 2 3
{{ form_label(form.name, 'Your name', {
'label_attr': {'class': 'CUSTOM_LABEL_CLASS'}
}) }}
Дата обновления перевода 2025-02-24
label_html
тип: boolean
по умолчанию: false
По умолчанию, содержание опции label
экранируется перед отображением
в шаблоне. Установите для этой опции значение true
, чтобы не экранировать
ее, что может быть полезно, когда ярлык содержит HTML-элементы.
Дата обновления перевода 2025-02-24
label_format
тип: string
по умолчанию: null
Конфигурирует строку, используемую в качестве ярылка поля, в случае, если
опция label
не была установлена. Это полезно при использовании
сообщений переводов ключевых слов.
Если вы используете сообщения переводов ключевых слов в качестве ярлыков, то у
вас часто будет несколько сообщений с ключевым словом для одного и того же ярлыка
(например, profile_address_street
, invoice_address_street
). Это потому,
что ярлык строится для каждого "пути" к полю. Чтобы избежать повтора сообщений
ключевых слов, вы можете сконфигурировать формат ярлыка в качестве статичного
значения, например:
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%',
]);
Эта опция наследуется дочерними типами. С использованием вышенаписанного кода,
ярлык поля street
обеих форм будет использовать сообщение с ключевым словом
form.address.street
.
В формате ярлыка доступны две переменные:
%id%
-
Уникальный идентификатор для поля, состоящий из полного пути к полю и имени
поля (например,
profile_address_street
); %name%
-
Имя поля (например,
street
).
Значение по умолчанию (null
) приводит к
"человеческой" версии имени поля.
Note
Опция label_format
оценивается в теме формы. Убедитесь в том, что вы
обновили ваши щаблоны, в случае, если вы настраивали темизацию форм.
Дата обновления перевода 2025-02-24
mapped
тип: boolean
по умолчанию: true
Если вы хотите, чтобы поле было проигнорировано про чтении или записи в него
объекта, вы можете установить опцию mapped
, как false
.
Дата обновления перевода 2023-09-25
required
тип: boolean
по умолчанию: true
Если "true", то будет отображён обязательный атрибут HTML5.
Соответствующий label
также отобразится с классом required
.
Эта опция внешняя и не зависит от валидации. В лучшем случае, если вы позволите Symfony отгадать ваш тип поля, тогда значение этой опции будет угадано из вашей информации о валидации.
Note
Обязательная опция также влияет на то, как будут обработаны пустые данные для каждого поля. Чтобы узнать больше, см. опцию empty_data.
Дата обновления перевода 2025-02-24
row_attr
тип: array
по умолчанию: []
Ассоциативный массив атрибутов HTML, добавляемых к элементу, который используется для отображения строки типа формы :
1 2 3
$builder->add('body', TextareaType::class, [
'row_attr' => ['class' => 'text-editor', 'id' => '...'],
]);
See also
Используйте опцию attr
, если вы хотите добавить эти атрибуты к
к элементу виджета типа формы .
Переменные формы
Дата обновления перевода 2025-02-24
?????????? | ??? | ?????????? |
---|---|---|
checked | boolean |
?????? ??????? ????, ??? ???. |