Wie aktualisiere ich ein Laravel-Modell mit eindeutigen Validierungsregeln ohne Fehler?

Patricia Arquette
Freigeben: 2024-10-24 19:18:30
Original
560 Leute haben es durchsucht

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

Laravel: Aktualisieren eines Modells mit eindeutigen Validierungsregeln

In Laravel ist die Validierung von Feldern während Modellaktualisierungen von entscheidender Bedeutung, um die Datenintegrität sicherzustellen. Allerdings können eindeutige Validierungsregeln Probleme beim Aktualisieren vorhandener Datensätze verursachen.

Betrachten Sie den folgenden Code in einer Repository-Klasse:

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

    return $user;
}</code>
Nach dem Login kopieren

Dieser Code versucht, die Felder des Modells erneut zu validieren, einschließlich eindeutiger Felder wie „Benutzername“ und „E-Mail“. Dieser Ansatz kann jedoch zu Validierungsfehlern führen, wenn versucht wird, Datensätze mit vorhandenen eindeutigen Werten zu aktualisieren.

Um dieses Problem zu beheben, müssen wir den aktuellen Datensatz von der Validierung ausschließen, um Aktualisierungen ohne Verletzung eindeutiger Einschränkungen zu ermöglichen. Dies können wir erreichen, indem wir die ID der zu aktualisierenden Instanz an den Validator anhängen. So geht's:

  1. Übergeben Sie die ID der Instanz:
    Übergeben Sie die ID der Instanz, die aktualisiert wird, an die Aktualisierungsmethode:

    <code class="php">public function update($id, $data) {
        $user = $this->findById($id);
        $user->fill($data);
        $this->validate($user->toArray(), ['id' => $id]);
        $user->save();
    }</code>
    Nach dem Login kopieren
  2. Den aktuellen Datensatz von der Validierung ausschließen:
    Im Validator verwenden wir den ID-Parameter, um zu erkennen, ob wir die Ressource aktualisieren oder erstellen:

    • Aktualisierung: Für eindeutige Validierungsregeln hängen Sie ,{$id} an die Regel an, um den aktuellen Datensatz auszuschließen. Zum Beispiel:

      <code class="php">'email' => 'unique:users,email,{$id}',</code>
      Nach dem Login kopieren
    • Erstellen: Geben Sie bei eindeutigen Validierungsregeln die ID nicht an. Zum Beispiel:

      <code class="php">'email' => 'unique:users,email',</code>
      Nach dem Login kopieren

Indem wir diese Schritte befolgen, können wir Laravel-Modelle elegant aktualisieren und gleichzeitig sicherstellen, dass einzigartige Validierungsbeschränkungen respektiert werden.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich ein Laravel-Modell mit eindeutigen Validierungsregeln ohne Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!