getDefaultSort(); if (is_callable($sort)) { $sort($query->getQuery()); } else { foreach ($sort as $field => $order) { if (is_array($order)) { foreach ($order as $value) { $query->getQuery()->orderByRaw(Str::snake($field).' != ?', [$value]); } } else { $query->getQuery()->orderBy(Str::snake($field), $order); } } } } /** * @param AbstractQueryState $query * @param int $offset */ protected function applyOffset(AbstractQueryState $query, $offset) { if ($offset > 0) { $query->getQuery()->skip($offset); } } /** * @param AbstractQueryState $query * @param int|null $limit */ protected function applyLimit(AbstractQueryState $query, $limit) { if ($limit > 0) { $query->getQuery()->take($limit); } } }