Laravel – Rule Validation unique Pada Proses Update

Saya menggunakan rule validation unique untuk mem-filter isian agar nilainya tidak ada yang duplikat.

Pada proses create atau tambah, tidak ada masalah. Tapi pada saat proses update atau ubah, baru timbul masalah.

Data tidak mau masuk ke database, karena teridentifikasi duplikat. Meskipun atribut yang unik tersebut tidak diubah sama sekali. Data tetap tidak masuk.

Saya sudah memprediksi masalah ini akan terjadi, karena memang sebelumnya sudah pernah mengalami di framework CodeIgniter. Masalahnya sama, form validation unique tidak bisa masuk pada proses update.

Akhirnya saya cari solusinya di Google dan berikut ini adalah cara yang saya lakukan untuk mengatasi rule validation unique pada proses update di Laravel.

Solusi

Saya cari solusinya di dokumentasi Laravel, tapi tidak begitu jelas dan saya juga gak ngerti. Sampai akhirnya menemukan solusi tersebut dari stackoverflow.

Cukup simpel, hanya perlu menambahkan parameter baru di bagian rule validation unique tersebut. Parameternya diisi dengan variabel $id atau dengan nama variabel lainnya yang penting isinya id dari data yang akan di update.

$this->validate($request, [
   'kode' => 'unique:pengguna,kode,' . $id,
]);

Sementara untuk proses create atau tambah, rule validation unique nya bisa ditulis seperti biasa.

$this->validate($request, [
   'kode' => 'unique:pengguna,kode',
]);

Parameter tambahan $id tersebut digunakan sebagai pengecualian (except), agar rule validation unique nya diabaikan sesuai dengan id yang diberikan. Jadi data bisa masuk pada proses update dan masih akan tetap unik.

Semoga tutorial singkat ini bermanfaat.

Komentar