October 24, 2024 laravel

Cara Menambahkan Limit di Eager Loading Laravel

Limit di eager loading berguna untuk membatasi jumlah rows dari relasi yang diload pada suatu model.

Untuk menambahkan limit pada eager loading, tambahkan constraint pada relasi yang ingin dilimit lalu panggil method limit di dalam constraint tersebut.

Misalnya ada model User yang memiliki banyak Post, lalu ingin diambil suatu User beserta Post-nya sebanyak 5 post saja.

use App\Models\User;

$user = User::with([
    'posts' => function ($query) {
        $query->limit(5);
    }
])->find(1);

Fitur ini baru ada di laravel 11, untuk laravel 10 ke bawah, gunakan package https://github.com/staudenmeir/eloquent-eager-limit.