Bagaimana untuk Mengemas kini Model Laravel dengan Peraturan Pengesahan Unik Tanpa Ralat?

Patricia Arquette
Lepaskan: 2024-10-24 19:18:30
asal
559 orang telah melayarinya

How to Update a Laravel Model with Unique Validation Rules Without Errors?

Laravel: Mengemas kini Model dengan Peraturan Pengesahan Unik

Dalam Laravel, mengesahkan medan semasa kemas kini model adalah penting untuk memastikan integriti data. Walau bagaimanapun, peraturan pengesahan unik boleh menyebabkan isu semasa mengemas kini rekod sedia ada.

Pertimbangkan kod berikut dalam kelas Repositori:

<code class="php">public function update($id, $data) {
    $user = $this->findById($id);
    $user->fill($data);
    $this->validate($user->toArray());
    $user->save();

    return $user;
}</code>
Salin selepas log masuk

Kod ini cuba mengesahkan semula medan model, termasuk medan unik seperti "nama pengguna" dan "e-mel." Walau bagaimanapun, pendekatan ini mungkin membawa kepada ralat pengesahan apabila cuba mengemas kini rekod dengan nilai unik sedia ada.

Untuk menyelesaikan isu ini, kami perlu mengecualikan rekod semasa daripada pengesahan untuk membenarkan kemas kini tanpa melanggar kekangan unik. Kita boleh mencapai ini dengan menambahkan id contoh yang sedang dikemas kini kepada pengesah. Begini caranya:

  1. Lepaskan id contoh:
    Lepaskan id contoh yang sedang dikemas kini kepada kaedah kemas kini:

    <code class="php">public function update($id, $data) {
        $user = $this->findById($id);
        $user->fill($data);
        $this->validate($user->toArray(), ['id' => $id]);
        $user->save();
    }</code>
    Salin selepas log masuk
  2. Kecualikan rekod semasa daripada pengesahan:
    Dalam pengesah, kami menggunakan parameter id untuk mengesan sama ada kami mengemas kini atau mencipta sumber:

    • Mengemas kini: Untuk peraturan pengesahan unik, tambahkan ,{$id} pada peraturan untuk mengecualikan rekod semasa. Contohnya:

      <code class="php">'email' => 'unique:users,email,{$id}',</code>
      Salin selepas log masuk
    • Mencipta: Untuk peraturan pengesahan unik, jangan sertakan id. Contohnya:

      <code class="php">'email' => 'unique:users,email',</code>
      Salin selepas log masuk

Dengan mengikuti langkah-langkah ini, kami boleh mengemas kini model Laravel dengan elegan sambil memastikan kekangan pengesahan unik dihormati.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Model Laravel dengan Peraturan Pengesahan Unik Tanpa Ralat?. 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!