protected buildUpListFilter ( |
||
$request | the current application | |
$definition | 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';
}
}
}
}
}