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

Barbara Streisand
Lepaskan: 2024-10-24 17:49:02
asal
917 orang telah melayarinya

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>
Salin selepas log masuk
  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>
Salin selepas log masuk
  1. Untuk kemas kini, paksa peraturan unik untuk mengabaikan id yang ditentukan:
<code class="php">'username' => 'required|unique:users,username,' . ($id ?? null),</code>
Salin selepas log masuk
  1. Untuk ciptaan, gunakan peraturan unik standard:
<code class="php">'username' => 'required|unique:users,username',</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!