/** * @param Fields $fields * * @return array */ protected function getColumns(Fields $fields) { $newFields = []; foreach ($this->mapping->map() as $objectProperty => $tableColumn) { if (in_array($objectProperty, $fields->get())) { $newFields[$objectProperty] = $tableColumn; } } return $newFields; }
/** * @param QueryBuilder $queryBuilder * @param SortInterface $sort * @param Mapping $mapping */ public static function sort(QueryBuilder $queryBuilder, SortInterface $sort, Mapping $mapping) { $columns = $mapping->map(); foreach ($sort->orders() as $propertyName => $order) { self::guardColumnExists($columns, $propertyName); $queryBuilder->orderBy($columns[$propertyName], $order->isAscending() ? Order::ASCENDING : Order::DESCENDING); } }
/** * @param QueryBuilder $query * @param FilterInterface $filter * @param Mapping $mapping * * @return QueryBuilder */ public static function filter(QueryBuilder $query, FilterInterface $filter, Mapping $mapping) { $placeholders = []; $columns = $mapping->map(); foreach ($filter->filters() as $condition => $filters) { $filters = self::removeEmptyFilters($filters); if (count($filters) > 0) { self::processConditions($columns, $placeholders, $query, $condition, $filters); } } $query->setParameters($placeholders); return $query; }