January 18, 2025 laravel

Cara Mengatasi Error MultipleRecordsFoundException di Laravel

Error MultipleRecordsFoundException di laravel biasanya terjadi ketika menggunakan method sole pada query builder. Berikut penjelasannya.

Method sole digunakan untuk mengambil data pertama dari hasil query database, jika query menghasilkan lebih dari satu record maka akan memicu error MultipleRecordsFoundException. Contoh penggunaanya.

$user = User::where('role', 'admin')->sole();

Pada kode di atas, jika di tabel users yang rolenya admin ada lebih dari satu maka akan memicu error MultipleRecordsFoundException.

Untuk mengatasinya, anda harus memastikan query yang dijalankan menggunakan sole hanya mengasilkan satu record.

Misalnya untuk contoh di atas, bisa dengan menambahkan UNIQUE constraints pada kolom role di tabel users, sehingga yang role-nya admin hanya ada satu.

Solusi lain, bisa dengan mengganti method sole ke first jika memang hanya ingin mengambil record yang pertama tanpa peduli query yang dijalankan sebenarnya menghasilkan lebih dari satu record.