Builder
class Builder (View source)
Свойства
| protected Builder | $query | Базовый экземпляр билдера запросов. | |
| protected Model | $model | Запрашиваемая модель. | |
| protected array | $eagerLoad | Связи, которые должны быть загружены с нетерпением. | |
| protected array | $macros | Все зарегистрированные макросы билдера. | |
| protected Closure | $onDelete | Замена для типичной функции удаления. | |
| protected array | $passthru | Методы, которые должны возвращаться из билдера запросов. | |
| protected array | $scopes | Примененные глобальные области. | |
| protected array | $removedScopes | Удаленные глобальные области. |
Методы
| void | __construct(Builder $query) Создать новый экземпляр билдера запросов Eloquent. | |
| $this | withGlobalScope(string $identifier, Scope|Closure $scope) Зарегистрировать новый глобальный scope. | |
| $this | withoutGlobalScope(Scope|string $scope) Удалить зарегистрированный глобальный scope. | |
| $this | withoutGlobalScopes(array $scopes = null) Удалить все или переданные зарегистрированные глобальные scopes. | |
| array | removedScopes() Получить массив глобальных scopes, которые были удалены из запроса. | |
| Model|Collection|Builder[]|Builder|null | find(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу. | |
| Collection | findMany(array $ids, array $columns = ['*']) Найти несколько моделей по их первичным ключам. | |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или бросить исключение. | |
| Model | findOrNew(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или вернуть свежий экземпляр модели. | |
| Model | firstOrNew(array $attributes) Получить первую запись, соответствующую атрибутам, или создать её. | |
| Model | firstOrCreate(array $attributes) Получить первую запись, соответствующую атрибутам, или создать её. | |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями. | |
| Model|Builder|null | first(array $columns = ['*']) Выполнить запрос и получить первый результат. | |
| Model|Builder | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или бросить исключение. | |
| Collection|Builder[] | get(array $columns = ['*']) Выполнить запрос как операцию "select". | |
| mixed | value(string $column) Получить значение одного столбца из первого результата запроса. | |
| Generator | cursor() Получить генератор для данного запроса. | |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на части. | |
| bool | chunkById(int $count, callable $callback, string $column = 'id') Разбить результаты запроса на части по сравнимым числовым идентификаторам. | |
| bool | each(callable $callback, int $count = 1000) Применить обратный вызов к каждому элементу, разбивая на части. | |
| Collection | pluck(string $column, string|null $key = null) Получить массив со значениями заданного столбца. | |
| Collection | lists(string $column, string $key = null) deprecated Псевдоним для метода "pluck". | |
| 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) Сгруппировать результаты заданного запроса по страницам с помощью простого пагинатора. | |
| int | update(array $values) Обновить запись в базе данных. | |
| int | increment(string $column, int $amount = 1, array $extra = []) Увеличить значение столбца на заданную величину. | |
| int | decrement(string $column, int $amount = 1, array $extra = []) Уменьшить значение столбца на заданную величину. | |
| array | addUpdatedAtColumn(array $values) Добавить столбец "updated at" в массив значений. | |
| mixed | delete() Удалить запись из базы данных. | |
| mixed | forceDelete() Выполнить стандартную функцию удаления для билдера. | |
| void | onDelete(Closure $callback) Зарегистрировать замену для стандартной функции удаления. | |
| Model[] | getModels(array $columns = ['*']) Получить гидратированные модели без eager loading. | |
| array | eagerLoadRelations(array $models) Загрузить отношения для моделей. | |
| array | loadRelation(array $models, string $name, Closure $constraints) Загрузить отношение для набора моделей. | |
| Relation | getRelation(string $name) Получить экземпляр отношения для заданного имени отношения. | |
| array | nestedRelations(string $relation) Получить глубоко вложенные отношения для заданного отношения верхнего уровня. | |
| bool | isNested(string $name, string $relation) Определить, является ли отношение вложенным. | |
| $this | when(bool $value, Closure $callback) Применить изменения запроса, заданные обратным вызовом, если заданное "value" равно true. |
| $this | where(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Добавить базовое условие where к запросу. | |
| Builder|Builder | orWhere(string $column, string $operator = null, mixed $value = null) Добавить условие "или где" к запросу. | |
| Builder|Builder | has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null) Добавить условие подсчета/существования связи к запросу. | |
| Builder|Builder | hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null) Добавить условия подсчета/существования вложенных связей к запросу. | |
| Builder|Builder | doesntHave(string $relation, string $boolean = 'and', Closure $callback = null) Добавить условие подсчета/существования связи к запросу. | |
| Builder|Builder | whereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с условиями where. | |
| Builder|Builder | whereDoesntHave(string $relation, Closure $callback = null) Добавить условие подсчета/существования связи к запросу с условиями where. | |
| Builder|Builder | orHas(string $relation, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с "или". | |
| Builder|Builder | orWhereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1) Добавить условие подсчета/существования связи к запросу с условиями where и "или". | |
| Builder|Builder | addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean) Добавить условие "has" к запросу. | |
| bool | shouldRunExistsQuery(string $operator, int $count) Проверить, можем ли выполнить запрос "exists" для оптимизации производительности. | |
| $this | whereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and') Добавить условие подсчета подзапроса к запросу. | |
| Builder|Builder | mergeModelDefinedRelationConstraints(Builder $relation) Объединить ограничения из запроса связи с текущим запросом. | |
| Relation | getHasRelationQuery(string $relation) Получить экземпляр базового запроса "has relation". | |
| $this | with(mixed $relations) Установить связи, которые должны быть загружены жадно. | |
| $this | without(mixed $relations) Запретить указанные связи от жадной загрузки. | |
| $this | withCount(mixed $relations) Добавить подзапросы для подсчета связей. | |
| array | parseWithRelations(array $relations) Разбирать список связей на отдельные. | |
| array | parseNestedWith(string $name, array $results) Разбирать вложенные связи в связи. | |
| mixed | scopes(array $scopes) Добавить заданные области видимости к текущему экземпляру билдера. | |
| mixed | callScope(callable $scope, array $parameters = []) Применить данную область видимости к текущему экземпляру билдера. | |
| Builder|Builder | applyScopes() Применить области видимости к экземпляру билдера Eloquent и вернуть его. | |
| bool | shouldNestWheresForScope(Builder $query, int $originalWhereCount) Определить, следует ли вкладывать условия where для области видимости после данного смещения. | |
| void | nestWheresForScope(Builder $query, int $originalWhereCount) Вложить условия where путем их разделения на данном счетчике where. | |
| void | addNestedWhereSlice(Builder $query, array $wheres, int $offset, int $length = null) Разделить условия where по заданному смещению и добавить их в запрос как вложенное условие. | |
| array | nestWhereSlice(array $whereSlice) Создать массив where с вложенными условиями where. | |
| Builder | getQuery() Получить базовый экземпляр билдера запросов. | |
| Builder | toBase() Получить экземпляр базового билдера запросов. | |
| $this | setQuery(Builder $query) Установить базовый экземпляр билдера запросов. | |
| array | getEagerLoads() Получить связи, которые будут жадно загружены. | |
| $this | setEagerLoads(array $eagerLoad) Установить связи, которые будут жадно загружены. | |
| Model | getModel() Получить экземпляр модели, к которой осуществляется запрос. | |
| $this | setModel(Model $model) Установить экземпляр модели для модели, к которой осуществляется запрос. |
| void | macro(string $name, Closure $callback) Расширить билдер заданным колбеком. | |
| Closure | getMacro(string $name) Получить заданный макрос по имени. | |
| mixed | __call(string $method, array $parameters) Динамически обработать вызовы в экземпляр запроса. | |
| void | __clone() Принудительно клонировать базовый билдер при клонировании. |
Подробности
void __construct(Builder $query)
Создать новый экземпляр билдера запросов Eloquent.
$this withGlobalScope(string $identifier, Scope|Closure $scope)
Зарегистрировать новый глобальный scope.
$this withoutGlobalScope(Scope|string $scope)
Удалить зарегистрированный глобальный scope.
$this withoutGlobalScopes(array $scopes = null)
Удалить все или указанные зарегистрированные глобальные scopes.
array removedScopes()
Получить массив глобальных scopes, удаленных из запроса.
Model|Collection|Builder[]|Builder|null find(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу.
Collection findMany(array $ids, array $columns = ['*'])
Найти несколько моделей по их первичным ключам.
Model|Collection findOrFail(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или выбросить исключение.
Model findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр модели.
Model firstOrNew(array $attributes)
Получить первую запись, соответствующую атрибутам, или создать её.
Model firstOrCreate(array $attributes)
Получить первую запись, соответствующую атрибутам, или создать её.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями.
Model|Builder firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
смешанный value(string $column)
Получить значение одного столбца из первого результата запроса.
Генератор cursor()
Получить генератор для данного запроса.
логическое значение chunk(int $count, callable $callback)
Разбить результаты запроса на части.
логическое значение chunkById(int $count, callable $callback, string $column = 'id')
Разбить результаты запроса на части, сравнивая числовые идентификаторы.
логическое значение each(callable $callback, int $count = 1000)
Выполнить вызываемый объект над каждым элементом при разбиении на части.
Коллекция pluck(string $column, string|null $key = null)
Получить массив со значениями заданного столбца.
Коллекция lists(string $column, string $key = null) устарело
устарело
Псевдоним для метода «pluck».
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)
Разбить запрос на простые страницы.
целое update(array $values)
Обновить запись в базе данных.
целое increment(string $column, int $amount = 1, array $extra = [])
Увеличить значение столбца на заданную величину.
целое decrement(string $column, int $amount = 1, array $extra = [])
Уменьшить значение столбца на заданную величину.
защищенный массив addUpdatedAtColumn(array $values)
Добавить столбец «updated at» в массив значений.
смешанный delete()
Удалить запись из базы данных.
смешанный forceDelete()
Выполнить стандартную функцию удаления для билдера.
пусто onDelete(Замыкание $callback)
Зарегистрировать замену стандартной функции удаления.
Модель[] getModels(array $columns = ['*'])
Получить гидратированные модели без ленивой загрузки.
массив eagerLoadRelations(массив $models)
Загрузка отношений для моделей.
защищённый массив loadRelation(массив $models, строка $name, Closure $constraints)
Жадно загрузить отношение для набора моделей.
Relation getRelation(строка $name)
Получить экземпляр отношения по заданному имени.
защищённый массив nestedRelations(строка $relation)
Получить глубоко вложенные отношения для заданного верхнего уровня отношения.
защищённый логический тип isNested(строка $name, строка $relation)
Определить, является ли отношение вложенным.
$this when(логический тип $value, Closure $callback)
Применить изменения запроса обратного вызова, если заданное «значение» истинно.
$this where(строка $column, строка $operator = null, смешанный тип $value = null, строка $boolean = 'and')
Добавить базовое условие where к запросу.
Builder|Builder orWhere(строка $column, строка $operator = null, смешанный тип $value = null)
Добавить условие «или где» к запросу.
Builder|Builder has(строка $relation, строка $operator = '>=', целое число $count = 1, строка $boolean = 'and', Closure $callback = null)
Добавить условие подсчета/существования отношения к запросу.
защищённый Builder|Builder hasNested(строка $relations, строка $operator = '>=', целое число $count = 1, строка $boolean = 'and', Closure|null $callback = null)
Добавить условия подсчета/существования вложенных отношений к запросу.
Builder|Builder doesntHave(строка $relation, строка $boolean = 'and', Closure $callback = null)
Добавить условие подсчета/существования отношения к запросу.
Builder|Builder whereHas(строка $relation, Closure $callback, строка $operator = '>=', целое число $count = 1)
Добавить условие подсчета/существования отношения к запросу с условиями where.
Builder|Builder whereDoesntHave(строка $relation, Closure $callback = null)
Добавить условие подсчета/существования отношения к запросу с условиями where.
Builder|Builder orHas(string $relation, string $operator = '>=', int $count = 1)
Добавить условие подсчёта/существования отношения к запросу с "или".
Builder|Builder orWhereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1)
Добавить условие подсчёта/существования отношения к запросу с условиями where и "или".
protected Builder|Builder addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Добавить условие "has" в where-оператор запроса.
protected bool shouldRunExistsQuery(string $operator, int $count)
Проверить, можем ли запустить запрос "exists" для оптимизации производительности.
protected $this whereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and')
Добавить подзапрос с условием подсчёта к запросу.
Builder|Builder mergeModelDefinedRelationConstraints(Builder $relation)
Объединить ограничения из запроса отношения в текущий запрос.
protected Relation getHasRelationQuery(string $relation)
Получить экземпляр базового запроса "has relation".
$this with(mixed $relations)
Установить отношения, которые должны быть загружены жадно.
$this without(mixed $relations)
Запретить указанные отношения от жадной загрузки.
$this withCount(mixed $relations)
Добавить подзапросы для подсчёта отношений.
protected array parseWithRelations(array $relations)
Разбирать список отношений в отдельные.
protected array parseNestedWith(string $name, array $results)
Разбирать вложенные отношения в отношении.
mixed scopes(array $scopes)
Добавить заданные scope к текущему экземпляру билдера.
protected mixed callScope(callable $scope, array $parameters = [])
Применить заданный scope к текущему экземпляру билдера.
protected bool shouldNestWheresForScope(Builder $query, int $originalWhereCount)
Определить, следует ли вкладывать where-операторы для scope, добавленного после указанного смещения.
protected void nestWheresForScope(Builder $query, int $originalWhereCount)
Вложить условия where, разбив их на куски по заданному количеству условий.
protected void addNestedWhereSlice(Builder $query, array $wheres, int $offset, int $length = null)
Разбить условия where на куски по заданному смещению и добавить их в запрос как вложенное условие.
protected array nestWhereSlice(array $whereSlice)
Создать массив where с вложенными условиями where.
Builder getQuery()
Получить базовый экземпляр билдера запросов.
Builder toBase()
Получить базовый экземпляр билдера запросов.
$this setQuery(Builder $query)
Установить базовый экземпляр билдера запросов.
array getEagerLoads()
Получить отношения, которые загружаются с жадным чтением.
$this setEagerLoads(array $eagerLoad)
Установить отношения, которые загружаются с жадным чтением.
Model getModel()
Получить экземпляр модели, к которой применяется запрос.
$this setModel(Model $model)
Установить экземпляр модели для запроса.
void macro(string $name, Closure $callback)
Расширить билдер с помощью указанной функции.
Closure getMacro(string $name)
Получить макрос по заданному имени.
mixed __call(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.2/Illuminate/Database/Eloquent/Builder.html