Builder
класс Builder (View source)
Traits
| BuildsQueries |
| QueriesRelationships |
Свойства
| protected Builder | $query | Базовый экземпляр построителя запросов. | |
| protected Model | $model | Запрашиваемая модель. | |
| protected array | $eagerLoad | Связи, которые должны быть загружены с нетерпением. | |
| static protected array | $macros | Все глобально зарегистрированные макросы построителя. | |
| protected array | $localMacros | Все локально зарегистрированные макросы построителя. | |
| protected Closure | $onDelete | Замена для обычной функции удаления. | |
| protected array | $passthru | Методы, которые должны быть возвращены из построителя запросов. | |
| protected array | $scopes | Применённые глобальные области видимости. | |
| protected array | $removedScopes | Удаленные глобальные области видимости. |
Методы
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на части. | from BuildsQueries |
| bool | each(callable $callback, int $count = 1000) Выполнить обратный вызов для каждого элемента во время разбиения на части. | from BuildsQueries |
| Model|object|BuildsQueries|null | first(array $columns = ['*']) Выполнить запрос и получить первый результат. | from BuildsQueries |
| mixed|$this | when(mixed $value, callable $callback, callable $default = null) Применить изменения запроса обратного вызова, если заданное "значение" истинно. | from BuildsQueries |
| Builder | tap(Closure $callback) Передать запрос в заданный обратный вызов. | from BuildsQueries |
| mixed|$this | unless(mixed $value, callable $callback, callable $default = null) Применить изменения запроса обратного вызова, если заданное "значение" ложно. | from BuildsQueries |
| LengthAwarePaginator | paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options) Создать новый экземпляр пагинатора с учетом длины. | from BuildsQueries |
| Paginator | simplePaginator(Collection $items, int $perPage, int $currentPage, array $options) Создать новый простой экземпляр пагинатора. | from BuildsQueries |
| Builder|QueriesRelationships | has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null) Добавить условие подсчета/существования связи к запросу. | from QueriesRelationships |
| Builder|QueriesRelationships | hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null) Добавить вложенные условия подсчета/существования связи к запросу. | from QueriesRelationships |
| Builder|QueriesRelationships | orHas(string $relation, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с "или". | from QueriesRelationships |
| Builder|QueriesRelationships | doesntHave(string $relation, string $boolean = 'and', Closure $callback = null) Добавить условие подсчета/существования связи к запросу. | from QueriesRelationships |
| Builder|QueriesRelationships | orDoesntHave(string $relation) Добавить условие подсчета/существования связи к запросу с "или". | from QueriesRelationships |
| Builder|QueriesRelationships | whereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с where-условиями. | from QueriesRelationships |
| Builder|QueriesRelationships | orWhereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с where-условиями и "или". | from QueriesRelationships |
| Builder|QueriesRelationships | whereDoesntHave(string $relation, Closure $callback = null) Добавить условие подсчета/существования связи к запросу с where-условиями. | from QueriesRelationships |
| Builder|QueriesRelationships | orWhereDoesntHave(string $relation, Closure $callback = null) Добавить условие подсчета/существования связи к запросу с where-условиями и "или". | from QueriesRelationships |
| $this | withCount(mixed $relations) Добавить подзапросы для подсчета связей. | from QueriesRelationships |
| Builder|QueriesRelationships | addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean) Добавить where-условие "has" к запросу. | from QueriesRelationships |
| Builder|QueriesRelationships | mergeConstraintsFrom(Builder $from) Объединить ограничения where из другого запроса с текущим запросом. | из QueriesRelationships |
| $this | addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and') Добавить подзапрос count к этому запросу. | из QueriesRelationships |
| Relation | getRelationWithoutConstraints(string $relation) Получить базовый экземпляр запроса "has relation". | из QueriesRelationships |
| bool | canUseExistsForExistenceCheck(string $operator, int $count) Проверить, можно ли выполнить запрос "exists" для оптимизации производительности. | из QueriesRelationships |
| void | __construct(Builder $query) Создать новый экземпляр построителя запросов Eloquent. | |
| Model | make(array $attributes = []) Создать и вернуть несохраненный экземпляр модели. | |
| $this | withGlobalScope(string $identifier, Scope|Closure $scope) Зарегистрировать новый глобальный scope. | |
| $this | withoutGlobalScope(Scope|string $scope) Удалить зарегистрированный глобальный scope. | |
| $this | withoutGlobalScopes(array $scopes = null) Удалить все или переданные зарегистрированные глобальные scopes. | |
| array | removedScopes() Получить массив глобальных scopes, которые были удалены из запроса. | |
| $this | whereKey(mixed $id) Добавить условие where по первичному ключу к запросу. | |
| $this | whereKeyNot(mixed $id) Добавить условие where по первичному ключу к запросу. | |
| $this | where(string|array|Closure $column, mixed $operator = null, mixed $value = null, string $boolean = 'and') Добавить базовое условие where к запросу. | |
| Builder|Builder | orWhere(Closure|array|string $column, mixed $operator = null, mixed $value = null) Добавить условие "or where" к запросу. | |
| Collection | hydrate(array $items) Создать коллекцию моделей из простых массивов. | |
| Collection | fromQuery(string $query, array $bindings = []) Создать коллекцию моделей из необработанного запроса. | |
| Model|Collection|Builder[]|Builder|null | find(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу. | |
| Collection | findMany(Arrayable|array $ids, array $columns = ['*']) Найти несколько моделей по их первичным ключам. | |
| Model|Collection|Builder|Builder[] | findOrFail(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или выбросить исключение. | |
| Model | findOrNew(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или вернуть новый экземпляр модели. | |
| Model | firstOrNew(array $attributes, array $values = []) Получить первую запись, соответствующую атрибутам, или создать её. | |
| Model | firstOrCreate(array $attributes, array $values = []) Получить первую запись, соответствующую атрибутам, или создать её. | |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями. | |
| Model|Builder | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | |
| Model|Builder|mixed | firstOr(Closure|array $columns = ['*'], Closure $callback = null) Выполнить запрос и получить первый результат или вызвать обратный вызов. | |
| mixed | value(string $column) Получить значение одного столбца из первого результата запроса. | |
| Collection|Builder[] | get(array $columns = ['*']) Выполнить запрос как оператор "select". | |
| Model[] | getModels(array $columns = ['*']) Получить модели без загрузки зависимостей. | |
| array | eagerLoadRelations(array $models) Загрузить зависимости для моделей. | |
| array | eagerLoadRelation(array $models, string $name, Closure $constraints) Загрузить зависимость для набора моделей. | |
| Relation | getRelation(string $name) Получить экземпляр зависимости для заданного имени зависимости. |
| array | relationsNestedUnder(string $relation) Получить глубоко вложенные отношения для заданного отношения верхнего уровня. | |
| bool | isNestedUnder(string $relation, string $name) Определить, является ли отношение вложенным. | |
| Generator | cursor() Получить генератор для заданного запроса. | |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null) Разбить результаты запроса, сравнивая числовые идентификаторы. | |
| void | enforceOrderBy() Добавить общее условие "order by", если запрос его ещё не содержит. | |
| Collection | pluck(string $column, string|null $key = null) Получить массив со значениями заданного столбца. | |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Разбить заданный запрос на страницы. | |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Разбить заданный запрос на страницы с помощью простого пагинатора. | |
| Model|$this | create(array $attributes = []) Сохранить новую модель и вернуть экземпляр. | |
| Model|$this | forceCreate(array $attributes) Сохранить новую модель и вернуть экземпляр. Разрешить массовое присваивание. | |
| int | update(array $values) Обновить запись в базе данных. | |
| int | increment(string $column, float|int $amount = 1, array $extra = []) Увеличить значение столбца на заданную величину. | |
| int | decrement(string $column, float|int $amount = 1, array $extra = []) Уменьшить значение столбца на заданную величину. | |
| array | addUpdatedAtColumn(array $values) Добавить столбец "updated at" в массив значений. | |
| mixed | delete() Удалить запись из базы данных. | |
| mixed | forceDelete() Выполнить функцию удаления по умолчанию для построителя. | |
| void | onDelete(Closure $callback) Зарегистрировать замену для функции удаления по умолчанию. | |
| mixed | scopes(array $scopes) Вызвать заданные локальные области видимости модели. | |
| Builder|Builder | applyScopes() Применить области видимости к экземпляру построителя Eloquent и вернуть его. | |
| mixed | callScope(callable $scope, array $parameters = []) Применить заданную область видимости к текущему экземпляру построителя. | |
| void | addNewWheresWithinGroup(Builder $query, int $originalWhereCount) Вложить условия where, разделив их по заданному счётчику where. | |
| void | groupWhereSliceForScope(Builder $query, array $whereSlice) Разделить условия where по заданному смещению и добавить их в запрос как вложенное условие. | |
| array | createNestedWhere(array $whereSlice, string $boolean = 'and') Создать массив where со вложенными условиями where. | |
| $this | with(mixed $relations) Установить отношения, которые должны быть загружены с помощью eager loading. | |
| $this | without(mixed $relations) Запретить eager loading указанных отношений. | |
| Model | newModelInstance(array $attributes = []) Создать новый экземпляр модели, которая запрашивается. | |
| array | parseWithRelations(array $relations) Разбить список отношений на отдельные элементы. | |
| array | createSelectWithConstraint(string $name) Создать ограничение для выбора заданных столбцов для отношения. | |
| array | addNestedWiths(string $name, array $results) Разбить вложенные отношения в отношении. | |
| Builder | getQuery() Получить базовый экземпляр построителя запросов. | |
| $this | setQuery(Builder $query) Установить базовый экземпляр построителя запросов. | |
| Builder | toBase() Получить базовый экземпляр построителя запросов. | |
| array | getEagerLoads() Получить отношения, загружаемые с помощью eager loading. | |
| $this | setEagerLoads(array $eagerLoad) Установить отношения, загружаемые с помощью eager loading. | |
| Model | getModel() Получить экземпляр модели, которая запрашивается. | |
| $this | setModel(Model $model) Установить экземпляр модели для модели, которая запрашивается. | |
| string | qualifyColumn(string $column) Квалифицировать заданное имя столбца таблицей модели. | |
| Closure | getMacro(string $name) Получить заданный макрос по имени. | |
| mixed | __call(string $method, array $parameters) Динамически обрабатывать вызовы в экземпляр запроса. | |
| static mixed | __callStatic(string $method, array $parameters) Динамически обрабатывать вызовы в экземпляр запроса. | |
| void | __clone() Принудительно клонировать базовый построитель запросов при клонировании. |
Подробности
bool chunk(int $count, callable $callback)
Разбить результаты запроса на части.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента во время разбиения на части.
Model|object|BuildsQueries|null first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
mixed|$this when(mixed $value, callable $callback, callable $default = null)
Применить изменения запроса из обратного вызова, если данное "значение" истинно.
mixed|$this unless(mixed $value, callable $callback, callable $default = null)
Применить изменения запроса из обратного вызова, если данное "значение" ложно.
protected LengthAwarePaginator paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)
Создать новый экземпляр пагинатора с учетом длины.
protected Paginator simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)
Создать новый простой экземпляр пагинатора.
Builder|QueriesRelationships has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null)
Добавить условие подсчета/существования связи к запросу.
protected Builder|QueriesRelationships hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Добавить вложенные условия подсчета/существования связи к запросу.
Настраивает рекурсивный вызов whereHas, пока мы не закончим вложенную связь.
Builder|QueriesRelationships orHas(string $relation, string $operator = '>=', int $count = 1)
Добавить условие подсчета/существования связи к запросу с "или".
Builder|QueriesRelationships doesntHave(string $relation, string $boolean = 'and', Closure $callback = null)
Добавить условие подсчета/существования связи к запросу.
Builder|QueriesRelationships orDoesntHave(string $relation)
Добавить условие подсчета/существования связи к запросу с помощью "или".
Builder|QueriesRelationships whereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1)
Добавить условие подсчета/существования связи к запросу с помощью where-условий.
Builder|QueriesRelationships orWhereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1)
Добавить условие подсчета/существования связи к запросу с помощью where-условий и "или".
Builder|QueriesRelationships whereDoesntHave(string $relation, Closure $callback = null)
Добавить условие подсчета/существования связи к запросу с помощью where-условий.
Builder|QueriesRelationships orWhereDoesntHave(string $relation, Closure $callback = null)
Добавить условие подсчета/существования связи к запросу с помощью where-условий и "или".
$this withCount(mixed $relations)
Добавить подзапросы для подсчета связей.
protected Builder|QueriesRelationships addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Добавить условие "has" where к запросу.
Builder|QueriesRelationships mergeConstraintsFrom(Builder $from)
Объединить where-ограничения из другого запроса с текущим запросом.
protected $this addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and')
Добавить подзапрос с условием подсчета к этому запросу.
protected Relation getRelationWithoutConstraints(string $relation)
Получить базовый экземпляр запроса "has relation".
protected bool canUseExistsForExistenceCheck(string $operator, int $count)
Проверить, можно ли выполнить запрос "exists" для оптимизации производительности.
void __construct(Builder $query)
Создать новый экземпляр построителя запросов Eloquent.
Model make(array $attributes = [])
Создать и вернуть экземпляр модели без сохранения.
$this withGlobalScope(string $identifier, Scope|Closure $scope)
Зарегистрировать новый глобальный scope.
$this withoutGlobalScope(Scope|string $scope)
Удалить зарегистрированный глобальный scope.
$this withoutGlobalScopes(array $scopes = null)
Удалить все или переданные зарегистрированные глобальные scopes.
array removedScopes()
Получить массив глобальных scopes, которые были удалены из запроса.
$this whereKey(mixed $id)
Добавить условие where по первичному ключу к запросу.
$this whereKeyNot(mixed $id)
Добавить условие where по первичному ключу к запросу.
$this where(string|array|Closure $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where к запросу.
Builder|Builder orWhere(Closure|array|string $column, mixed $operator = null, mixed $value = null)
Добавить условие "or where" к запросу.
Collection hydrate(array $items)
Создать коллекцию моделей из простых массивов.
Collection fromQuery(string $query, array $bindings = [])
Создать коллекцию моделей из необработанного запроса.
Model|Collection|Builder[]|Builder|null find(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу.
Collection findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько моделей по их первичным ключам.
Model|Collection|Builder|Builder[] findOrFail(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или выбросить исключение.
Model findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр модели.
Model firstOrNew(array $attributes, array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Model firstOrCreate(array $attributes, array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями.
Model|Builder firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Model|Builder|mixed firstOr(Closure|array $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов.
mixed value(string $column)
Получить значение одного столбца из первого результата запроса.
Collection|Builder[] get(array $columns = ['*'])
Выполнить запрос как инструкцию "select".
Model[] getModels(array $columns = ['*'])
Получить модели без загрузки зависимых данных.
array eagerLoadRelations(array $models)
Загрузить зависимые данные для моделей.
protected array eagerLoadRelation(array $models, string $name, Closure $constraints)
Загрузить зависимые данные для набора моделей.
Relation getRelation(string $name)
Получить экземпляр отношения для заданного имени отношения.
protected array relationsNestedUnder(string $relation)
Получить глубоко вложенные отношения для заданного отношения верхнего уровня.
protected bool isNestedUnder(string $relation, string $name)
Определить, является ли отношение вложенным.
Generator cursor()
Получить генератор для заданного запроса.
bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса, сравнивая числовые ID.
protected void enforceOrderBy()
Добавить общее предложение "order by", если запрос его ещё не содержит.
Collection pluck(string $column, string|null $key = null)
Получить массив со значениями данного столбца.
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить заданный запрос на страницы.
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить заданный запрос на страницы с помощью простого пагинатора.
Model|$this create(array $attributes = [])
Сохранить новую модель и вернуть экземпляр.
Model|$this forceCreate(array $attributes)
Сохранить новую модель и вернуть экземпляр. Разрешить массовое присваивание.
int update(array $values)
Обновить запись в базе данных.
int increment(string $column, float|int $amount = 1, array $extra = [])
Увеличить значение столбца на заданную величину.
int decrement(string $column, float|int $amount = 1, array $extra = [])
Уменьшить значение столбца на заданную величину.
protected array addUpdatedAtColumn(array $values)
Добавить столбец "updated at" в массив значений.
mixed delete()
Удалить запись из базы данных.
mixed forceDelete()
Выполнить функцию удаления по умолчанию для построителя.
Так как мы не применяем здесь области видимости, строка будет фактически удалена.
void onDelete(Closure $callback)
Зарегистрировать замену для функции удаления по умолчанию.
mixed scopes(array $scopes)
Вызвать заданные локальные области видимости модели.
Builder|Builder applyScopes()
Применить области видимости к экземпляру построителя Eloquent и вернуть его.
protected mixed callScope(callable $scope, array $parameters = [])
Применить заданную область видимости к текущему экземпляру построителя.
protected void addNewWheresWithinGroup(Builder $query, int $originalWhereCount)
Вложить условия where, разделив их по заданному количеству where.
protected void groupWhereSliceForScope(Builder $query, array $whereSlice)
Разделить условия where по заданному смещению и добавить их в запрос как вложенное условие.
protected array createNestedWhere(array $whereSlice, string $boolean = 'and')
Создать массив where с вложенными условиями where.
$this with(mixed $relations)
Установить отношения, которые должны быть загружены с помощью eager loading.
$this without(mixed $relations)
Запретить загрузку указанных отношений.
Model newModelInstance(array $attributes = [])
Создать новый экземпляр модели, которая запрашивается.
protected array parseWithRelations(array $relations)
Разбить список отношений на отдельные элементы.
protected array createSelectWithConstraint(string $name)
Создать ограничение для выбора заданных столбцов для отношения.
protected array addNestedWiths(string $name, array $results)
Разбить вложенные отношения в отношении.
Builder getQuery()
Получить базовый экземпляр построителя запросов.
$this setQuery(Builder $query)
Установить базовый экземпляр построителя запросов.
Builder toBase()
Получить базовый экземпляр построителя запросов.
array getEagerLoads()
Получить отношения, которые загружаются усердно.
$this setEagerLoads(array $eagerLoad)
Установить отношения, которые загружаются усердно.
Model getModel()
Получить экземпляр модели, которая запрашивается.
$this setModel(Model $model)
Установить экземпляр модели для модели, которая запрашивается.
string qualifyColumn(string $column)
Квалифицировать заданное имя столбца таблицей модели.
Closure getMacro(string $name)
Получить заданный макрос по имени.
mixed __call(string $method, array $parameters)
Динамически обрабатывать вызовы в экземпляр запроса.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы в экземпляр запроса.
void __clone()
Принудительно клонировать базовый построитель запросов при клонировании.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.6/Illuminate/Database/Eloquent/Builder.html