Defining relationship form fields
When creating a form, there is a default behaviour for every type of form field relationship:
Attribute
form field -ExtendedFormControl
will be createdBelongsTo
form field -ExtendedFormControl
will be createdHasMany
form field - An emptyExtendedFormArray
will be created
For example, for User
model:
By default form will be created with:
name
form field asExtendedFormControl
address
form field asExtendedFormControl
cars
form field asExtendedFormArray
containing oneExtendedFormControl
for everyCar
model.
If default form fields don't provide enough control (e.g. you are manipulating multiple levels of relationships on the same page/form), default behaviour can be overriden by implementing one of the following methods:
#
Create relationship form fields using @BuildRelationshipFormObject decoratorIf defined, method decorated with @BuildRelationshipFormObject
decorator will be used when creating a form field for any model relationship decorated with @BelongsTo
or @HasMany
decorators.
This method must return a FormObject
instance. Find out more.
#
Create form fields using BuildControl decoratorIf defined, method decorated with BuildControl
decorator will be used when building a form field for any model property or relationship decorated with Attribute
, BelongsTo
or HasMany
.
This method must return an instance of ExtendedFormControl
, ExtendedFormArray
or FormStore
. It receives property value as its argument. Find out more.