Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Semula Model Laravel dengan Kekangan Unik Semasa Kemas Kini?

Bagaimana untuk Mengesahkan Semula Model Laravel dengan Kekangan Unik Semasa Kemas Kini?

Barbara Streisand
Barbara Streisandasal
2024-10-24 17:49:02918semak imbas

How to Revalidate Laravel Models with Unique Constraints During Updates?

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:

  1. Lepaskan id contoh model kepada pengesah:
<code class="php">$user = $this->findById($id);
$user->fill($data);
$this->validate($user->toArray(), ['id' => $user->id]);</code>
  1. Dalam pengesah, gunakan parameter untuk bezakan antara kemas kini dan ciptaan:
<code class="php">// Validation rules
'username' => Validator::make($data, [
    'username' => 'required|unique:users,username,' . ($id ?? null),
]);</code>
  1. Untuk kemas kini, paksa peraturan unik untuk mengabaikan id yang ditentukan:
<code class="php">'username' => 'required|unique:users,username,' . ($id ?? null),</code>
  1. Untuk ciptaan, gunakan peraturan unik standard:
<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn