CRUDlex\ControllerProvider::buildUpListFilter PHP Method

buildUpListFilter() protected method

Builds up the parameters of the list page filters.
protected buildUpListFilter ( Request $request, EntityDefinition $definition, &$filter, boolean &$filterActive, array &$filterToUse, array &$filterOperators )
$request Symfony\Component\HttpFoundation\Request the current application
$definition EntityDefinition the current entity definition
$filterActive boolean reference, will be true if at least one filter is active
$filterToUse array reference, will hold a map of fields to integers (0 or 1) which boolean filters are active
$filterOperators array reference, will hold a map of fields to operators for AbstractData::listEntries()
    protected function buildUpListFilter(Request $request, EntityDefinition $definition, &$filter, &$filterActive, &$filterToUse, &$filterOperators)
    {
        foreach ($definition->getFilter() as $filterField) {
            $type = $definition->getType($filterField);
            $filter[$filterField] = $request->get('crudFilter' . $filterField);
            if ($filter[$filterField]) {
                $filterActive = true;
                if ($type === 'boolean') {
                    $filterToUse[$filterField] = $filter[$filterField] == 'true' ? 1 : 0;
                    $filterOperators[$filterField] = '=';
                } else {
                    if ($type === 'many') {
                        $filter[$filterField] = array_map(function ($value) {
                            return ['id' => $value];
                        }, $filter[$filterField]);
                        $filterToUse[$filterField] = $filter[$filterField];
                    } else {
                        $filterToUse[$filterField] = '%' . $filter[$filterField] . '%';
                        $filterOperators[$filterField] = 'LIKE';
                    }
                }
            }
        }
    }