Конструктор запросов
Элементы запроса
| Метод | Варианты | Описание |
| 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) |