Поле EmailType
Поле EmailType
Поле EmailType
- это текстовое поле, которое отображается, используя
HTML5-тег <input type="email" />
.
???????????? ??? | ???? input email (????????? ????) |
??????????? ????? | |
???????????? ??? | TextType |
????? | EmailType |
Наследуемые опции
Эти опции наследуются из FormType:
data
тип: mixed
по умолчанию : По умолчанию является полем основоположной структуры.
Когда вы создаёте форму, каждое поле изначально отображает значение соотствующего свойства данных домена формы (например, если вы привязываете объект к форме). Если вы хотите переопределить эти изначальные значения для формы или индивидуального поля, вы можете установить это в опции данных:
1 2 3 4 5 6
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
// ...
$builder->add('token', HiddenType::class, array(
'data' => 'abcdef',
));
Caution
Опция data
всегда переопределяет значение, взятое из данных домена (объекта)
при отображении. Это означает, что значение объекта также переопределяется, когда
форма редактирует уже существующий сохранённый объект, что приводит к потере
сохранённого значения при отправке формы.
disabled
тип: boolean
по умолчанию: false
Если вы не хотите, чтобы пользователь изменял значение поля, то вы можете установить опцию отключения, как "true". Любые отправленные данные будут проигнорированы.
empty_data
тип: mixed
- .. Этот файл должен быть включен только с "началом после" или "окончанием до",
- установленными в значении заполнителя. Его цель - позволить нам включать только часть этого файла.
DEFAULT_PLACEHOLDER
Эта опция определяет, какое значение вернёт поле, если отправленное значение пустое (или отсутствует). Она не устаналивает изначальное значение, если оно не предоставлено, когда форма отображается для просмотра.
Это означает, что вам помогают обрабатывать отправку формы с пустыми полями.
Например, если вы хотите, чтобы поле name
было ясно установлено, как
John Doe
, когда значение не выбрано, вы можете сделать это так:
1 2 3 4
$builder->add('name', null, array(
'required' => false,
'empty_data' => 'John Doe',
));
Это всё ещё будет отображать пустое текстовое поле, но при отправке будет
установлено значение John Doe
. Используйте опции data
или placeholder
,
чтобы показать это изначальное значение в отображённой форме.
Если форма составная, то вы можете установить empty_data
в качестве массива,
объекта или замыкания. См. статью Как сконфигурировать пустые данные для класса формы , чтобы узнать больше
об этих опциях.
Note
Если вы хотите установить опцию empty_data
для всего вашего класса
форм, см. статью Как сконфигурировать пустые данные для класса формы.
Caution
Преобразователи данных формы всё ещё будут
применяться к значению empty_data
. Это означает, что пустая строка будет
преобразована в null
. Используйте пользовательский преобразователь данных,
если вы хотите ясно вернуть пустую строку.
:end-before: DEFAULT_PLACEHOLDER
Значение по умолчанию - ''
(пустая строка).
empty_data
тип: mixed
- .. Этот файл должен быть включен только с "началом после" или "окончанием до",
- установленными в значении заполнителя. Его цель - позволить нам включать только часть этого файла.
DEFAULT_PLACEHOLDER
Эта опция определяет, какое значение вернёт поле, если отправленное значение пустое (или отсутствует). Она не устаналивает изначальное значение, если оно не предоставлено, когда форма отображается для просмотра.
Это означает, что вам помогают обрабатывать отправку формы с пустыми полями.
Например, если вы хотите, чтобы поле name
было ясно установлено, как
John Doe
, когда значение не выбрано, вы можете сделать это так:
1 2 3 4
$builder->add('name', null, array(
'required' => false,
'empty_data' => 'John Doe',
));
Это всё ещё будет отображать пустое текстовое поле, но при отправке будет
установлено значение John Doe
. Используйте опции data
или placeholder
,
чтобы показать это изначальное значение в отображённой форме.
Если форма составная, то вы можете установить empty_data
в качестве массива,
объекта или замыкания. См. статью Как сконфигурировать пустые данные для класса формы , чтобы узнать больше
об этих опциях.
Note
Если вы хотите установить опцию empty_data
для всего вашего класса
форм, см. статью Как сконфигурировать пустые данные для класса формы.
Caution
Преобразователи данных формы всё ещё будут
применяться к значению empty_data
. Это означает, что пустая строка будет
преобразована в null
. Используйте пользовательский преобразователь данных,
если вы хотите ясно вернуть пустую строку.
:start-after: DEFAULT_PLACEHOLDER
error_bubbling
тип: boolean
по умолчанию: false
, кроме случаев, когда форма compound
Если true
, то любые ошибки в этом поле будут переданы родительскому
полю или форме. Например, если установлена, как true
в нормальном
поле, то любые ошибки для этого поля будут присоединены к главной форме,
а не к конкретному полю.
error_mapping
тип: array
по умолчанию: array()
Эта опция позволяет вам изменять цель ошибки валидации.
Представьте, что у вас есть пользовательский метод под именем matchingCityAndZipCode()
,
который валидирует, совпадает ли город и почтовый индекс. К сожалению, поля
"matchingCityAndZipCode" в вашей форме нет, поэтому всё, что Symfony может сделать -
это отобразить ошибку наверху формы.
С настроенным отображением ошибок вы можете сделать лучше: привяжите ошибку к полю города, чтобы она отображалась над ним:
1 2 3 4 5 6 7 8
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'error_mapping' => array(
'matchingCityAndZipCode' => 'city',
),
));
}
Вот правила для лево- и правостороннего отображения:
- Левая сторона содержит пути свойств;
- Если наружение генерируется в свойств или методе класс, то его путь - это
просто
propertyName
; - Вы можете создать вложенные пути свойств, соединив их, разделяя свойства точками.
Например:
addresses[work].matchingCityAndZipCode
; - Правая сторона содержит просто имена полей в форме.
По умолчанию, ошибки любого свойства, которое не отображенно, соберутся в
родительской форме. Вы можете использовать точку (.
) в левой части, чтобы
привязать ошибки всех неотображённых свойств к конкретному полю. Например,
чтобы привязать эти ошибки к полю city
, используйте:
1 2 3 4 5
$resolver->setDefaults(array(
'error_mapping' => array(
'.' => 'city',
),
));
Дата обновления перевода 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'),
])
Ярлык также может быть установлен внутри шаблона:
- Twig
- PHP
1
{{ form_label(form.name, 'Your name') }}
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
оценивается в теме формы. Убедитесь в том, что вы
обновили ваши щаблоны, в случае, если вы настраивали темизацию форм.
mapped
тип: boolean
по умолчанию: true
Если вы хотите, чтобы поле было проигнорировано про чтении или записи в него
объетка, вы можете установить опцию mapped
, как false
.
required
тип: boolean
по умолчанию: true
Если "true", то будет отображён обязательный атрибут HTML5.
Соответствующий label
также отобразится с классом required
.
Эта опция внешняя и не зависит от валидации. В лучшем случае, если вы позволите Symfony отгадать ваш тип поля, тогда значение этой опции будет угадано из вашей информации о валидации.
Note
Обязательная опция также влияет на то, как будут обработаны пустые данные для каждого поля. Чтобы узнать больше, см. опцию empty_data.
trim
тип: boolean
по умолчанию: true
Если "true", то свободное пространство значения отправленной строки будет отделено с помощью функции trim, если данные привязаны. Это гарантирует, что если значение отправлено с лишними свободными пространствами, они будут удалены до того, как значение будет опять объединено с объектом, лежащим в основе.