Sahkan Semula Model Laravel dengan Kekangan Unik Semasa Mengemas kini
Apabila bekerja dengan model Laravel Eloquent yang menguatkuasakan peraturan pengesahan unik, mengemas kini model boleh mencetuskan pengesahan ralat jika nilai yang diubah suai sepadan dengan rekod sedia ada. Untuk menangani isu ini, pembangun sering mengesahkan semula atribut model selepas kemas kini. Walau bagaimanapun, pendekatan ini boleh membawa kepada masalah dengan pengesahan peraturan yang diperlukan.
Dalam contoh yang disediakan, kaedah kemas kini dalam repositori mengesahkan atribut model menggunakan kaedah pengesahan. Walau bagaimanapun, pengesahan ini menggunakan peraturan unik yang sama seperti untuk mencipta model baharu. Akibatnya, mengemas kini model dengan nilai sedia ada gagal dalam pengesahan.
Untuk menyelesaikan isu ini, anda boleh menyesuaikan peraturan pengesahan untuk mengabaikan id kejadian yang sedang dikemas kini.
Menyesuaikan Peraturan Pengesahan:
<code class="php">$user = $this->findById($id); $user->fill($data); $this->validate($user->toArray(), ['id' => $user->id]);</code>
<code class="php">// Validation rules 'username' => Validator::make($data, [ 'username' => 'required|unique:users,username,' . ($id ?? null), ]);</code>
<code class="php">'username' => 'required|unique:users,username,' . ($id ?? null),</code>
<code class="php">'username' => 'required|unique:users,username',</code>
Dengan memasukkan penyesuaian ini, rangka kerja akan mengabaikan kekangan unik untuk id sedia ada, membolehkan anda mengemas kini model tanpa mencetuskan ralat pengesahan akibat pendua nilai medan.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Semula Model Laravel dengan Kekangan Unik Semasa Kemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!