Строитель
класс Строитель (Просмотреть исходный код)
Трейты
| BuildsQueries |
| QueriesRelationships |
| ForwardsCalls |
Свойства
| protected Строитель | $query | Экземпляр базового строителя запросов. | |
| protected Модель | $model | Модель, к которой применяется запрос. | |
| protected массив | $eagerLoad | Связи, которые должны быть загружены с помощью eager loading. | |
| static protected массив | $macros | Все глобально зарегистрированные макросы строителя. | |
| protected массив | $localMacros | Все локально зарегистрированные макросы строителя. | |
| protected Closure | $onDelete | Замена стандартной функции удаления. | |
| protected массив | $passthru | Методы, которые должны быть возвращены из строителя запросов. | |
| protected массив | $scopes | Примененные глобальные области видимости. | |
| protected массив | $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) Добавить условие "has" where-условие к запросу. | 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 |
| mixed | forwardCallTo(mixed $object, string $method, array $parameters) Переадресовать вызов метода данному объекту. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method) Выбросить исключение BadMethodCallException для данного метода. | из ForwardsCalls |
| void | __construct(Builder $query) Создать новый экземпляр Eloquent query builder. | |
| 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» в запрос. | |
| $this | latest(string $column = null) Добавить условие «order by» для timestamp в запрос. | |
| $this | oldest(string $column = null) Добавить условие «order by» для timestamp в запрос. | |
| 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|Builder | findOrNew(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или вернуть новый экземпляр модели. | |
| Model|Builder | firstOrNew(array $attributes, array $values = []) Получить первую запись, соответствующую атрибутам, или создать её экземпляр. | |
| Model|Builder | firstOrCreate(array $attributes, array $values = []) Получить первую запись, соответствующую атрибутам, или создать её. | |
| Model|Builder | updateOrCreate(array $attributes, array $values = []) Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями. | |
| Model|Builder | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | |
| Model|Builder|mixed | firstOr(Closure|array $columns = ['*'], Closure $callback = null) Выполнить запрос и получить первый результат или вызвать колбэк. | |
| mixed | value(string $column) Получить значение единственного столбца из первого результата запроса. |
| Коллекция|Билдер[] | get(array $columns = ['*']) Выполнить запрос как операцию «select». | |
| Модель[]|Билдер[] | getModels(array $columns = ['*']) Получить гидратированные модели без ленивой загрузки. | |
| массив | eagerLoadRelations(array $models) Выполнить ленивую загрузку отношений для моделей. | |
| массив | eagerLoadRelation(array $models, string $name, Closure $constraints) Лениво загрузить отношение для набора моделей. | |
| Отношение | getRelation(string $name) Получить экземпляр отношения для заданного имени. | |
| массив | relationsNestedUnder(string $relation) Получить глубоко вложенные отношения для заданного верхнего уровня отношения. | |
| bool | isNestedUnder(string $relation, string $name) Определить, является ли отношение вложенным. | |
| Генератор | cursor() Получить генератор для данного запроса. | |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null) Разбить результаты запроса на куски, сравнивая числовые идентификаторы. | |
| void | enforceOrderBy() Добавить общий оператор «order by», если в запросе его ещё нет. | |
| Коллекция | 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) Выполнить простое постраничное отображение заданного запроса. | |
| Модель|$this | create(array $attributes = []) Сохранить новую модель и вернуть экземпляр. | |
| Модель|$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 = []) Уменьшить значение столбца на заданную величину. | |
| массив | addUpdatedAtColumn(array $values) Добавить столбец «updated at» в массив значений. | |
| mixed | delete() Удалить запись из базы данных. | |
| mixed | forceDelete() Выполнить стандартную функцию удаления для билдера. | |
| void | onDelete(Closure $callback) Зарегистрировать замену для стандартной функции удаления. | |
| mixed | scopes(array $scopes) Вызвать заданные локальные скоупы модели. | |
| Билдер|Билдер | applyScopes() Применить скоупы к экземпляру Eloquent билдера и вернуть его. | |
| mixed | callScope(callable $scope, array $parameters = []) Применить заданный скоуп к текущему экземпляру билдера. | |
| void | addNewWheresWithinGroup(Билдер $query, int $originalWhereCount) Вложить условия where, разделив их по заданному количеству. | |
| void | groupWhereSliceForScope(Билдер $query, array $whereSlice) Разбить условия where по заданному смещению и добавить их в запрос как вложенное условие. | |
| массив | createNestedWhere(array $whereSlice, string $boolean = 'and') Создать массив where с вложенными условиями where. | |
| $this | with(mixed $relations) Установить отношения, которые нужно загрузить лениво. | |
| $this | without(mixed $relations) Запретить ленивую загрузку указанных отношений. | |
| Модель|Билдер | newModelInstance(array $attributes = []) Создать новый экземпляр модели, к которой обращается запрос. | |
| массив | parseWithRelations(array $relations) Обработать список отношений, разделив их на отдельные. | |
| массив | createSelectWithConstraint(string $name) Создать ограничение для выбора заданных столбцов для отношения. | |
| массив | addNestedWiths(string $name, array $results) Обработать вложенные отношения в отношении. | |
| Билдер | getQuery() Получить базовый экземпляр билдера запросов. | |
| $this | setQuery(Билдер $query) Установить базовый экземпляр билдера запросов. | |
| Билдер | toBase() Получить базовый экземпляр билдера запросов. | |
| массив | getEagerLoads() Получить отношения, которые загружаются лениво. | |
| $this | setEagerLoads(array $eagerLoad) Установить отношения, которые загружаются лениво. | |
| Модель|Билдер | 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)
Выполнить обратный вызов над каждым элементом при разбиении на части.
Модель|object|BuildsQueries|null first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
mixed|$this when(mixed $value, callable $callback, callable $default = null)
Применить изменения запроса обратного вызова, если заданное «значение» истинно.
Конструктор tap(Closure $callback)
Передать запрос заданному обратному вызову.
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)
Создать новый простой экземпляр пагинатора.
Конструктор|QueriesRelationships has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null)
Добавить условие подсчёта/существования связи к запросу.
protected Конструктор|QueriesRelationships hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Добавить вложенные условия подсчета/существования связей в запрос.
Настраивает рекурсивный вызов whereHas, пока не закончатся вложенные отношения.
Конструктор|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" для оптимизации производительности.
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправление вызова метода заданному объекту.
static protected void throwBadMethodCallException(string $method)
Выброс исключения вызова несуществующего метода для заданного метода.
void __construct(Builder $query)
Создание нового экземпляра билдера запросов Eloquent.
Модель make(array $attributes = [])
Создание и возврат несохраненного экземпляра модели.
$this withGlobalScope(string $identifier, Scope|Closure $scope)
Регистрация нового глобального скоупа.
$this withoutGlobalScope(Scope|string $scope)
Удаление зарегистрированного глобального скоупа.
$this withoutGlobalScopes(array $scopes = null)
Удаление всех или переданных зарегистрированных глобальных скоупов.
array removedScopes()
Получение массива глобальных скоупов, которые были удалены из запроса.
$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" в запрос.
$this latest(string $column = null)
Добавление условия "order by" для временной метки в запрос.
$this oldest(string $column = null)
Добавление условия "order by" для временной метки в запрос.
Коллекция hydrate(array $items)
Создание коллекции моделей из простых массивов.
Коллекция fromQuery(string $query, array $bindings = [])
Создание коллекции моделей из обычного запроса.
Модель|Коллекция|Билдер[]|Билдер|null find(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу.
Коллекция findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько моделей по их первичным ключам.
Модель|Коллекция|Билдер|Билдер[] findOrFail(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или выбросить исключение.
Модель|Билдер findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр модели.
Модель|Билдер firstOrNew(array $attributes, array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Модель|Билдер firstOrCreate(array $attributes, array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Модель|Билдер updateOrCreate(array $attributes, array $values = [])
Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями.
Модель|Билдер firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|Билдер|смешанный firstOr(Closure|array $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов.
смешанный value(string $column)
Получить значение одного столбца из первого результата запроса.
Модель[]|Билдер[] getModels(array $columns = ['*'])
Получить гидратированные модели без отложенной загрузки.
массив 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)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
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)
Вызвать заданные локальные модели-скоупы.
protected mixed callScope(callable $scope, array $parameters = [])
Применить заданный scope к текущему экземпляру builder.
protected void addNewWheresWithinGroup(Builder $query, int $originalWhereCount)
Вложить условия where, разделив их по заданному количеству условий.
protected void groupWhereSliceForScope(Builder $query, array $whereSlice)
Разбить условия where по заданному смещению и добавить их в запрос как вложенное условие.
protected array createNestedWhere(array $whereSlice, string $boolean = 'and')
Создать массив where с вложенными условиями where.
$this with(mixed $relations)
Установить отношения, которые должны быть загружены жадно.
$this without(mixed $relations)
Запретить загрузку указанных отношений жадно.
Model|Builder newModelInstance(array $attributes = [])
Создать новый экземпляр модели, по которой выполняется запрос.
protected array parseWithRelations(array $relations)
Разбить список отношений на отдельные.
protected array createSelectWithConstraint(string $name)
Создать ограничение для выбора заданных столбцов для отношения.
protected array addNestedWiths(string $name, array $results)
Обработать вложенные отношения в отношении.
Builder getQuery()
Получить базовый экземпляр query builder.
$this setQuery(Builder $query)
Установить базовый экземпляр query builder.
Builder toBase()
Получить базовый экземпляр query builder.
array getEagerLoads()
Получить отношения, загружаемые жадно.
$this setEagerLoads(array $eagerLoad)
Установить отношения, загружаемые жадно.
$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.7/Illuminate/Database/Eloquent/Builder.html