/** * Applies operation to source and returns modified source. * * @param Query $src * @param OperationInterface|SortOperation $operation * @return Query */ public function process($src, OperationInterface $operation) { $field = $operation->getField(); $order = $operation->getOrder(); $src->order .= "ORDER BY {$field} {$order}"; return $src; }
/** * Applies operation to data source and returns modified data source. * * @param QueryBuilder $src * @param OperationInterface|SortOperation $operation * @return QueryBuilder */ public function process($src, OperationInterface $operation) { $field = $operation->getField(); $order = $operation->getOrder(); $src->orderBy($field, $order); return $src; }
/** * Applies operation to source and returns modified source. * * @param $src * @param OperationInterface|SortOperation $operation * @return mixed */ public function process($src, OperationInterface $operation) { $field = $operation->getField(); $desc = $operation->getOrder() === SortOperation::DESC; usort($src, function ($row1, $row2) use($field, $desc) { $val1 = mp\getValue($row1, $field); $val2 = mp\getValue($row2, $field); if ($val1 == $val2) { return 0; } $res = $val1 < $val2 ? -1 : 1; return $desc ? -$res : $res; }); return $src; }