Введение в Eloquent ORM
Eloquent — это Object-Relational Mapping (ORM) в Laravel. Он представляет каждую таблицу базы данных как класс PHP, а каждую строку — как объект. Вместо написания SQL-запросов ты работаешь с объектами и их методами.
Зачем нужен ORM
Писать чистый SQL можно, но это неудобно:
- Нет типизации и автодополнения
- Сложно переиспользовать логику
- Нужно вручную защищаться от SQL-инъекций
- Сложно поддерживать при изменении схемы
Eloquent решает эти проблемы. Ты пишешь $user->posts вместо SELECT * FROM posts WHERE user_id = ?.
Соглашение об именах
Eloquent следует простому правилу: модель в единственном числе, таблица во множественном.
- Модель
User→ таблицаusers - Модель
Post→ таблицаposts - Модель
Article→ таблицаarticles
Если таблица называется иначе, имя можно переопределить через свойство $table.
Как это выглядит
Создаём модель командой:
php artisan make:model Post
Получаем класс:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
//
}
Теперь можно обращаться к данным:
$post = Post::find(1);
echo $post->title;
Главные концепции
- Модель — класс, связанный с таблицей
- Атрибуты — свойства модели, соответствующие колонкам таблицы
- Связи — методы, описывающие отношения между моделями
- Скоупы — переиспользуемые условия запросов
- Аксессоры и мутаторы — преобразование значений при чтении и записи