Шпаргалка Laravel Eloquent
Нет смысла перепечатывать всё, что есть в интернете. Самый лучший ресурс-шпаргалка:
PDF версия online шпаргали Laravel предлагает "простыню" на 13 страниц, я вырезал нужную часть, подкорректировал до 4 страниц в docx, такой вариант уже можно распечать на 2х сдвоенных страницах А4.
В нескольких словах что такое Eloquent
Система объектно-реляционного отображения ORM1 Eloquent - красивая и простая реализация ActiveRecord2 в Laravel для работы с базами данных. Каждая таблица имеет соответствующий класс-модель, который используется для работы с этой таблицей.
Суть технологии сводится к тому, что вместо ручного("сырого") написания SQL запросов используются цепочки методов, которые формируют рабочий код SQL запроса.
Вместо
SELECT * FROM users;
SELECT * FROM users WHERE name = `Вася` ORDER BY surname LIMIT 1;
Используем
User::all();
$user = User::where('name','Вася')->orderBy('surname')->first();
// Далее можно обращаться к полям как к свойствам модели:
echo $user->name;
Немного про модели Eloquent
Каждая модель соответствует таблице базы данных. По соглашению разработчиков предполагается:
- Название модели является единственным числом от названия таблицы. Если таблица называется Planes, то модель - Plane.
- Первичным ключом является id.
- Столбцы с отметками времени назыаются оканчиваются на _at. Встроенные метки на создание, изменение и псевдоудаление created_at, updated_at и deleted_at.
- Булевы поля начинаются с is_
Если за один запрос изменятся больше одной записи в базе данных, то в свойстве fillable (массив) модели должные присутствовать изменяемые поля. Тоже самое относится к вставкам через метод create (INSERT). В fillable должны находится все поля, что можно передавать из формы на сайте.
Модели поддерживают scopes - подмножества, позволяющие организовать логику запросов в моделях. Например нам нужны пользователи отцы: мужчины, у которых есть дети:
public function scopeFathers($query)
{
return $query->where('childrens', '>', 0)->where('gender', 'man');
}
В дальнейшем используется как метод fathers():
User::where('name','Вася')->fathers()->get();
Полезные ссылки: