Defining relationship form fields
FormObjectBuilder
has 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 create{FieldName}FormObject methodIf defined, this method will be used when creating a form field for any model relationship decorated with BelongsTo
or HasMany
.
This method must have a name formatted like create{propertyName}FormObject
and return a FormObject
instance. Find out more.
#
Create form fields using build{FieldName} methodIf defined, this method will be used when building a form field for any model property or relationship decorated with Attribute
, BelongsTo
or HasMany
.
This method must have a name formatted like build{propertyName}
and return a ExtendedFormControl
, ExtendedFormArray
or FormStore
instance. It receives property value as its argument. Find out more.