class RadioListMapper implementsDataMapperInterface

Maps choices to/from radio forms.

A {@link ChoiceListInterface} implementation is used to find the corresponding string values for the choices. The radio form whose "value" option corresponds to the selected value is marked as selected.

Methods

void
mapDataToForms(mixed$choice,Traversable$radios)

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

void
mapFormsToData(Traversable$radios,mixed$choice)

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

Details

void mapDataToForms(mixed$choice,Traversable$radios)

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 $choice
Traversable $radios

Return Value

void

Exceptions

UnexpectedTypeException if the type of the data parameter is not supported

void mapFormsToData(Traversable$radios,mixed$choice)

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 $radios
mixed $choice

Return Value

void

Exceptions

UnexpectedTypeException if the type of the data parameter is not supported