Using Form Types¶
In this article we will show what types you can use when creating or editing forms, what options they have and what they do.
We use two types of naming for form types:
*FormType
- This type is used in Controllers to create forms and their views on front-end or they are used in other FormTypes as sub-forms*Type
- This type is used only in other FormTypes to ease adding fields with their own widgets and to add to their reusability
Default options¶
Every form type has some default options that can be used for various things.
macro¶
Defaults to null
.
This option is used as array with two options (name
, recommended_length
) and its currently used for working with SEO:
name
- this option has two values that can be usedseoFormRowMacros
- this value shows single domainTextType
field with information about current length and recommended lengthseoFormRowMacros.multidomainRow
- this value shows multidomainTextType
field with information about current length and recommended length
recommended_length
- it's an integer value that is used to show recommended maximal length of a text
icon_title¶
Defaults to null
.
This option is used to add information icon after form field that shows tooltip with message after hovering.
To show message you need to fill this option with string that you want to show in the tooltip.
display_format¶
Defaults to null
.
You can use this option if you want to have no padding in your rendered form_row.
To achieve this you need to fill this option with constant FormRenderingConfigurationExtension::DISPLAY_FORMAT_MULTIDOMAIN_ROWS_NO_PADDING
js_container¶
Defaults to null
.
This option is used as array with two options (container_class
, data_type
) and can be used to wrap your form_row in <div class="{{ js_container.container_class }}" data-type="{{ js_container.data_type }}">
render_form_row¶
Defaults to true
.
If you want to add your FormType and don't render its form_label
and form_errors
you can set this option to false.
This can be set to create FormTypes that can be used in other FormTypes like the ones that are listed below.
Form types¶
We created some form types which can help you with creating your own form types. Here you can find an information about what they do and what options they have.
GroupType¶
GroupType
is used for creating groups of containers.
It is not mapped onto any property and it inherits data into group so you can work with forms in this group the same way as you were before.
GroupType
makes sure to render your fields into nicely styled div
wrapper.
GroupType
comes with a few options that you can use for even more comfortable work.
label¶
This option is used for displaying heading of section, for example, in CustomerFormType
all user data like name, last name or email address are all in section with label Personal Data
.
DisplayOnlyCustomerType¶
Displays name of a registered customer along with a link to his/her detail.
If there is no customer set, unregistered customer
text will be displayed instead.
DisplayOnlyType¶
Sometimes form needs to only display information but does not need to change and persist this data, for this usages
there is DisplayOnlyType
which does not map property onto entity
and let you to display your own data.
DisplayOnlyUrlType¶
Displays custom URL based on routing system.
LocalizedFullWidthType¶
Displays localized field in vertical order of full-width label and inputs.
OrderItemsType¶
Displays editable table of OrderItems
from provided Order
.
MessageType¶
Displays highlighted message with an icon. Allows set the info or warning formatting using the message_level
option.
LocalizedType¶
Compound type that renders one form of given type for each locale. Returns array indexed by locale.
entry_type¶
Defaults to TextType::class
.
It’s used to define what FormType should be used for the inner forms.
entry_options¶
An array of options that is used for every inner form.
main_constraints¶
An array of constraints that is used for field with the same locale as administration.
CategoriesType¶
Displays a tree of all categories for given domain_id
with checkboxes for each category created by CategoryCheckBoxType
and returns array indexed by checked category ids.
domain_id¶
Required option that defines for what domain should the categories be listed.
CategoryCheckboxType¶
Creates checkbox and label with category name if name of the form is the same as category id.
Adds visible
, category_name
, has_children
and level
vars from category on domain for given domain_id
to FormView
so you can easily work with the checkbox.
domain_id¶
Required option that defines from what domain should the category be listed.
ColorPickerType¶
Displays text field with box of given color that shows color picker when clicked.
DatePickerType¶
Displays field that shows date picker when clicked.
Value is internally converted from admin display timezone to UTC, so it have to be persisted in database also as DateTime
to avoid possible date shifting.
format¶
Defaults to DatePickerType::FORMAT_PHP
.
Defines in what format should be the date shown.
DatePickerType has 2 constants that can be used:
- FORMAT_PHP = 'dd.MM.yyyy'
- FORMAT_JS = 'dd.mm.yy'
DateTimeType¶
Displays a text field that allows to set date and time.
Value is internally converted from admin display time zone to UTC.
format¶
Defaults to DateTimeType::FORMAT_PHP
.
Defines in what format should be the date shown.
DatePickerType has constant that can be used:
- FORMAT_PHP = 'dd.MM.yyyy HH:mm:ss'
DisplayOnlyDomainIconType¶
Displays domain icon with the domains name for given domain ID in data
option.
DomainsType¶
Displays list of non-required checkboxes for every domain with the domain name as label.
DomainType¶
Displays select box with all domain names or domain URLs.
displayUrl¶
Defaults to false
.
If you set this option to true
, domain url will be shown instead of domain name.
FileUploadType¶
Uses AbstractFileUploadType
to display a widget for files upload and to work with them (similar as ImageUploadType
).
After a file or files are uploaded it shows box for every file and lets you to downloads, order or delete files.
file_constraints¶
An array of constraints that should be applied for the uploaded file.
file_entity_class¶
Defines which entity class (defined in uploaded_files.yaml) should the files be assigned to.
file_type¶
Defines which type of file (defined in uploaded_files.yaml) should the files be assigned to.
info_text¶
Required option that needs to be string or null and is a text that is shown under the upload icon.
entity¶
Defines which entity should the files be assigned to.
MultiLocaleFileUploadType¶
Extends FileUploadType
with additional support for translated file names.
BasicFileUploadType¶
Uses AbstractFileUploadType
to display a widget for file uploads and manage them without associating them with any entity.
multiple¶
Allows multiple files to be uploaded.
allow_filenames_input¶
Allows to input custom filenames for uploaded files.
MultiLocaleBasicFileUploadType¶
Extends BasicFileUploadType
with additional support for translated file names.
FriendlyUrlType¶
Displays a select box with domain urls and text field that lets you to create friendly url on selected domain with your valid slug.
Uses DomainType
to display select box with domain urls.
UrlListType¶
Uses FriendlyUrlType
to display a list of friendly URLs for each domain that lets you delete and create friendly URLs with unique slugs and select which URL should be the main for the domain.
route_name¶
Defines which route should the URLs go into.
entity_id¶
Defines what is the entity ID that the URLs are assigned to.
ImageUploadType¶
Uses AbstractFileUploadType
to display a widget for images upload and to work with them (same as FileUploadType
).
entity¶
Defines which entity should the images be assigned to.
OrderListType¶
Displays a list of orders for given user
.
The list contains order number
, created on
, billing address
, delivery address
, total price including VAT
, status
and a link to order detail.
Displays text Customer has no orders so far.
if User doesn't have any orders.
user¶
Required option that defines for what user should the orders be listed.
PriceTableType¶
Displays a table with prices for each currency that lets you to add input price without Vat. After saving widget the price that you added (which you can edit) and final prices with and without Vat (that you cannot edit) are updated. Price without Vat is not the same as you added so the final price with Vat can be an integer.
ProductCalculatedPricesType¶
Adds a widget that shows a table with prices of product
that are calculated for every pricing group and every domain.
If product
is null, it shows table with every pricing group for every domain.
product¶
Required option that defines for what product should the prices be listed.
ProductsType¶
Displays a list of products.
The widget adds button that after clicking opens a popup window that lets you to search and to pick products except for main_product
.
After picking you can sort or delete picked products.
allow_add¶
Boolean option that defines if products can be added to the list.
allow_delete¶
Boolean option that defines if products can be removed from the list.
sortable¶
Boolean option that defines if products in the list can be sorted.
allow_main_variants¶
Boolean option that defines if main variants can be added.
allow_variants¶
Boolean option that defines if variants can be added.
main_product¶
Option that defines for what product are you picking products. main_product
can't be picked.
label_button_add¶
Option that defines text of button for adding products.
ProductType¶
Displays a widget that lets you to pick one product.
It has one input
with placeholder
or name of picked product and a button
that after clicking opens a popup window that lets you to search and to pick a product.
placeholder¶
Option that lets you to add a placeholder text when you dont have picked product.
allow_delete¶
Boolean option that defines if product can be deleted.
allow_main_variants¶
Boolean option that defines if main variants can be picked.
allow_variants¶
Boolean option that defines if variants can be picked.
SingleCheckboxChoiceType¶
Displays a list of choices shown as checkboxes.
SortableValuesType¶
Displays a list of values that lets you add values from a select box, remove them form the list or sort them as you like. Returns array with sorted IDs that have been picked and sorted.
allow_add¶
Boolean option that defines if products can be added to the list.
allow_delete¶
Boolean option that defines if products can be removed from the list.
MultidomainType¶
Compound type that renders one form of given type for each domain. The data of the inner forms are returned as an array indexed by the domain ID.
entry_type¶
Defaults to TextType::class
.
The type of the inner form.
entry_options¶
Defaults to []
.
The options of the inner forms.
options_by_domain_id¶
Defaults to []
.
The options of the inner forms based on the domain ID.
Provide arrays indexed by the domain ID, values are merged with the entry_options
.
YesNoType¶
Natural looking choice type for boolean value inputs. A boolean value is accepted/returned as data. A null value can be accepted/returned when no radio button is checked.