/** * Execute the query and get the first result. * * @param array $columns * * @return mixed|static */ public function first($columns = ['*']) { $this->query->take(1); $results = $this->get($columns); if ($results instanceof Collection) { return $results->first(); } return count($results) > 0 ? reset($results) : null; }
/** * A reusable query to pass params * * @param Builder $query * @param array $queryFilter * * @return Builder */ public function scopeQueryWithParams($query, $queryFilter) { $limit = isset($queryFilter['limit']) ? $queryFilter['limit'] : 10; $perPage = isset($queryFilter['perPage']); $orderBy = isset($queryFilter['orderBy']) ? $queryFilter['orderBy'] : 'created_at'; $sortOrder = isset($queryFilter['sortOrder']) ? $queryFilter['sortOrder'] : 'desc'; $query->orderBy($orderBy, $sortOrder); if ($perPage) { return $query->paginate($perPage); } return $query->take($limit); }
private function buildQuery() { $this->query = app(get_class($this->model)); if (!empty($this->fields)) { $this->query = $this->query->select($this->fields); } if (!empty($this->relations)) { $this->relations = array_unique($this->relations); $this->query = $this->query->with($this->relations); } if (!empty($this->per_page)) { $this->query = $this->query->take($this->per_page); } if (count($this->conditions)) { foreach ($this->conditions as $condition) { $this->query = $this->query->where($condition['column'], $condition['operator'], $condition['value'], $condition['boolean']); } } }
/** * Alias to set the "limit" value of the query. * * @param int $value * @return \Illuminate\Database\Query\Builder|static * @static */ public static function take($value) { return \Illuminate\Database\Query\Builder::take($value); }
public function execute(Builder $query) { $query->take($this->getValue()); return $query; }
public function getSome($take, $skip = 0) { return $this->query->take($take)->skip($skip)->get(); }
/** * Filters a relationship options query by a search term * * @param mixed $term * @param \Illuminate\Database\Query\Builder $query * @param array $selectedItems * @param \Frozennode\Administrator\Fields\Field $fieldObject * @param string $relatedKeyTable */ public function filterBySearchTerm($term, QueryBuilder &$query, Field $fieldObject, array $selectedItems, $relatedKeyTable) { if ($term) { //set up the wheres foreach ($fieldObject->getOption('search_fields') as $search) { $query->where($this->db->raw($search), 'LIKE', '%'.$term.'%'); } //exclude the currently-selected items if there are any if (count($selectedItems)) { $query->whereNotIn($relatedKeyTable, $selectedItems); } //set up the limits $query->take($fieldObject->getOption('num_options') + count($selectedItems)); } }