"Глубокое погружение в Eloquent ORM: работа с моделями и коллекциями"

Андрей Игнатов
Игнатов Андрей
Founder & Techlead
10 мая 2026
26

Eloquent ORM — одна из главных причин популярности Laravel. Она позволяет работать с базой данных через удобные PHP-модели вместо ручного SQL.

В этой статье разберём:

  • Laravel model;
  • CRUD-операции;
  • Eloquent collections;
  • scopes;
  • массовое заполнение;
  • query builder;
  • производительность.

Что такое Eloquent ORM

Laravel Eloquent ORM — ActiveRecord-реализация для работы с database.

Каждая таблица представляется моделью.


Создание модели

php artisan make:model Post

Модель появится в:

app/Models/Post.php

Пример модели

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = [
        'title',
        'content',
    ];
}

CRUD в Eloquent

Создание записи

Post::create([
    'title' => 'Laravel',
    'content' => 'Eloquent ORM',
]);

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

Все записи

Post::all();

По ID

Post::find(1);

where()

Post::where('published', true)->get();

Обновление записи

$post = Post::find(1);

$post->title = 'Updated';

$post->save();

Удаление записи

$post->delete();

Mass Assignment

Laravel защищает модели через fillable.

protected $fillable = [
    'title',
    'content',
];

Hidden Fields

protected $hidden = [
    'password',
];

Eloquent Collections

Laravel collections — мощный инструмент обработки данных.

Пример:

$posts->filter();

$posts->map();

$posts->groupBy();

Query Scopes

Local Scope

public function scopePublished($query)
{
    return $query->where('published', true);
}

Использование:

Post::published()->get();

Accessors и Mutators

public function getTitleAttribute($value)
{
    return strtoupper($value);
}

Soft Deletes

use SoftDeletes;

Migration:

$table->softDeletes();

Eager Loading

Post::with('comments')->get();

Это помогает избежать N+1 проблемы.


Query Builder vs Eloquent

Eloquent удобнее для бизнес-логики.

Query Builder быстрее для сложных SQL-запросов.


Оптимизация Eloquent

Рекомендуется:

  • использовать eager loading;
  • минимизировать select *;
  • кешировать запросы;
  • использовать indexes;
  • избегать N+1.

Итоги

Laravel Eloquent ORM делает работу с database максимально удобной.

С помощью моделей и коллекций можно:

  • быстро создавать CRUD;
  • строить сложные запросы;
  • работать со связями;
  • писать чистый и читаемый код.

Eloquent остаётся одной из лучших ORM в PHP ecosystem.

👉 Заказать бесплатный экспресс-аудит проекта

Задать вопрос

Если у вас возник технический вопрос по нашим статьям или появилась потребность в профессиональной разработке сложного веб-проекта — оставьте свои контакты. Техлид «Команды-А» свяжется с вами, чтобы проконсультировать и помочь найти оптимальное решение.

Нажимая кнопку, вы соглашаетесь с политикой обработки персональных данных.