Конструктор запросов
Элементы запроса
Метод | Варианты | Описание |
select('name', 'email as user_email') | Указываем поля для выборки. Можно использовать MySQL функции и присваивать алиасы через as. | |
addSelect('age') | Добавить поле для select, если уже запрос сформирован. Полезно при написании мудрёных скриптов, формирующих запросы. | |
join() | INNER JOIN из MySQL | |
leftJoin() | LEFT JOIN из MySQL | |
crossJoin() | CROSS JOIN из MySQL | |
where($key, $value) | Оператор WHERE в MySQL. Для самого простого варианта использования - первым параметром передается имя поля, вторым параметром искомое значение. Можно передать 3 параметра, где 1 - поле, 2 - оператор, 3 - искомое значение |
|
where('votes', '>=', 100) | ||
where('votes', '<>', 100) | ||
where('name', 'like', 'T%') | ||
where([ ['status', '=', '1'], ['subscribed', '<>', '1'], ]) | ||
orWhere('name', 'John') | Оператор OR в MySQL. Принимает теже параметры, что и where() | |
whereBetween('votes', [1, 100]) | Оператор BETWEEN в MySQL. Проверяет, что значения находятся в указанном интервале | |
whereNotBetween('votes', [1, 100]) | Проверяет, что значения находятся вне указанного интервала | |
whereIn('id', [1, 2, 3]) | Оператор IN в MySQL | |
whereNotIn('id', [1, 2, 3]) | Оператор NOT IN в MySQL | |
whereNull('updated_at') | Проверяет, что значение поля равно NULL | |
whereNotNull('updated_at') | Проверяет, что значение поля не равно NULL | |
distinct() | Только уникальные значения | |
groupBy('status') | ||
take() / limit() | LIMIT из MySQL | |
whereHas() | Post::whereHas('comments', function (Builder $query) { $query->where('content', 'like', 'code%'); })->get(); | Для сложных выборок в отношениях |
whereRelation() | whereRelation('comments', 'is_approved', false) | Для простых выборок в отношениях |
when(true, function($query) {}) | Проверяет условие и выполняет callback если условие true. Метод для удобства, чтобы не плодить if else. |
Методы получения данных
Это окончательные методы для отправки запроса и получения данных, прописываются последними в формировании запроса
Метод | Описание |
first() | Получить первую модель, соответствующую условию запроса |
find() | Найти только одну запись по id |
findOrFail() | Если результат не найден, будет выброшено исключение. Если исключение не перехвачено то будет осуществлен переход на страницу 404 |
get() | Возвращает коллекцию всех элементов, соответствующих запросу |
pluck('title', 'name') | Получить массив значений одного или нескольких полей. Параметрами передаются имена полей |
Аггрегатные методы
Также, вызываются в конце запроса и предназначены для получения данных, но уже с конкретными условиями
Метод | Описание |
count() |
Получить подсчитанное количество результатов |
min() | Получить минимальное значение из выборки |
max() | Получить максимальное значение из выборки |
avg() | Получить среднее значение из выборки |
sum() | Получить сумму значений в выборке |
Методы внесения/обновления данных
Метод | Описание |
save() | Сохраняет данные в БД. |
updateOrCreate() | Обновляет существующую запись, а при ее отсутствии создает новую |
Методы удаления данных
Метод | Описание |
delete() | Удаляет существующий элемент |
destroy() | Удаляет существующий элемент по первичному ключу (id) |