Полный цикл в digital

ORM в Laravel

Одна из задач, которую берут на себя ORM – это построение произвольных SQL-запросов в базу данных. В Laravel есть два метода работы с ORM:

  1. Модели Eloquent
  2. Построитель запросов QueryBuilder

Модели Eloquent

В этом варианте работы необходимо создавать модель, в моем случае Start для работы с базой данных как с объектом, дальше доступны запросы и методы:

Start::select('body')->where('id', '=', 1)->value('body');

Генирируемый запрос к базе:

select `body` from `starts` where `id` = 1 limit 1

Построитель запросов QueryBuilder

В этом варианте работы можно не создавать модель, имя таблицы нужно указать в методе table() для работы с базой данных как с объектом, дальше доступны запросы и методы:

DB::table('starts')->where('id', '=', 1)->value('body');

Генирируемый запрос к базе:

select `body` from `starts` where `id` = 1 limit 1

Доступные методы

Методы доступны для модели и построителя запросов. В языке запросов Eloquent есть по методу на каждую часть SQL, это достаточно легко понять из документации если вы знаете SQL. Дальше привожу список с боевыми примерами, которыем используются для моделей и построителей запросов. Обрашайте внимание, в каком стиле вы работаете и контролируйте SQL запрос через панель debugbar:

Получение данных

  1. Выборка select()
  2. Получение всех данных all()
  3. Получение одной записи first()
  4. Получение одной записи first()
  5. Получение записи по id find()
  6. Получение всех записей table()
  7. Получение одного значения value()
  8. Массив значений одного столбца pluck()
  9. Разделение результатов на куски chunk()

Создание и изменение данных

  1. Вставка данных insert()
  2. Обновление данных update()
  3. Сохранение новой записи save()
  4. Изменение старой записи save()

Удаление данных

  1. Удаление данных delete()
  2. Удаление записи delete()
  3. Удаление записи по id destroy()
  4. Мягкое удаление

Проверка данных

  1. Проверка значений столбца указонному интервалу whereBetween(), whereNotBetween()
  2. Проверка на NULL whereNull(), whereNotNull()

Сортировка данных

  1. Сортировка данных orderBy()
  2. Сортировка по дате latest(), oldest()
  3. Случайная сортировка inRandomOrder()

Условия для получения данных

  1. Условие where()
  2. Условие выборки по дате whereDate(), whereMonth(), whereDay(), whereYear()

Сравнение данных

  1. Сравнение двух колонок whereColumn()

Агрегатные функции

  1. Агрегатная функция count()
  2. Агрегатная функция max()
  3. Агрегатная функция min()
  4. Агрегатная функция avg()
  5. Агрегатная функция sum()

Соединение таблиц

  1. Соединение таблиц Inner Join (внутреннее соединение)
  2. Соединение таблиц left Join (внешнее соединение)
  3. Слияние запросов union()

Ограничение количества при выборке

  1. Количество записей в выборке take()

Сдвиг при запросе

  1. Сдвиг при выборке skip()

Инкремент и декремент

  1. Инкремент и декремент increment(), decrement()
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг