Урок 01

Введение в 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;

Главные концепции

  • Модель — класс, связанный с таблицей
  • Атрибуты — свойства модели, соответствующие колонкам таблицы
  • Связи — методы, описывающие отношения между моделями
  • Скоупы — переиспользуемые условия запросов
  • Аксессоры и мутаторы — преобразование значений при чтении и записи