interface DataMapperInterface

Methods

void
mapDataToForms(mixed$viewData,Traversable$forms)

Maps the view data of a compound form to its children.

void
mapFormsToData(Traversable$forms,mixed$viewData)

Maps the model data of a list of children forms into the view data of their parent.

Details

void mapDataToForms(mixed$viewData,Traversable$forms)

Maps the view data of a compound form to its children.

The method is responsible for calling {@link FormInterface::setData()} on the children of compound forms, defining their underlying model data.

Parameters

mixed $viewData View data of the compound form being initialized
Traversable $forms FormInterface> $forms A list of {@link FormInterface} instances

Return Value

void

Exceptions

UnexpectedTypeException if the type of the data parameter is not supported

void mapFormsToData(Traversable$forms,mixed$viewData)

Maps the model data of a list of children forms into the view data of their parent.

This is the internal cascade call of FormInterface::submit for compound forms, since they cannot be bound to any input nor the request as scalar, but their children may:

$compoundForm->submit($arrayOfChildrenViewData)
// inside:
$childForm->submit($childViewData);
// for each entry, do the same and/or reverse transform
$this->dataMapper->mapFormsToData($compoundForm, $compoundInitialViewData)
// then reverse transform

When a simple form is submitted the following is happening:

$simpleForm->submit($submittedViewData)
// inside:
$this->viewData = $submittedViewData
// then reverse transform

The model data can be an array or an object, so this second argument is always passed by reference.

Parameters

Traversable $forms FormInterface> $forms A list of {@link FormInterface} instances
mixed $viewData &$viewData The compound form's view data that get mapped its children model data

Return Value

void

Exceptions

UnexpectedTypeException if the type of the data parameter is not supported