Skip to main content
Version: v0.1 (latest)

FormDataContract

The FormDataContract lets a filter element control how the runtime value is extracted from its submitted Symfony form field.

Interface: HeimrichHannot\FlareBundle\Contract\FilterElement\FormDataContract

Method

extractFormData(FormInterface $form): mixed

Return the value that the filter invoker should receive for this filter. The default implementation in AbstractFilterElement simply returns $form->getData().

When is this called?

FormDataContract is only used by the interactive projector. When it gathers the filter values from the submitted filter form, it calls extractFormData() on every filter element that implements the contract; elements without it fall back to $field->getData().

Override this when the form field's model data is not what your invoker needs — for example, to work with the view data instead, or to unwrap a compound field.

Example

DcaSelectFieldElement uses the view data instead of the (transformed) model data:

use Symfony\Component\Form\FormInterface;

public function extractFormData(FormInterface $form): mixed
{
return $form->getViewData();
}

If you need to normalize the extracted value further before invocation, combine this with RuntimeValueContract.