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.