/** * @param QueryBuilder $qb */ private function applyOrder(QueryBuilder $qb) { if (0 === sizeof($this->request->getOrder())) { foreach ($this->table->getColumns() as $column) { if (null !== $column->getOptions()['order']) { $qb->addOrderBy($this->getPrefixedField($column), $column->getOptions()['order']); } } return; } $columns = $this->request->getColumns(); foreach ($this->request->getOrder() as $order) { $columnIndex = $order['column']; $columnName = $columns[$columnIndex]['name']; $column = $this->table->getColumns()[$columnName]; if (true === $column->getOptions()['sortable']) { $qb->addOrderBy($this->getPrefixedField($column), $order['dir']); } } }