„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie aktualisiere ich ein Laravel-Modell mit eindeutigen Validierungsregeln ohne Fehler?

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

Veröffentlicht am 08.11.2024
Durchsuche:777

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:

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

    return $user;
}

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 zu ermöglichen, ohne die eindeutigen Einschränkungen zu verletzen. 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:

    public function update($id, $data) {
        $user = $this->findById($id);
        $user->fill($data);
        $this->validate($user->toArray(), ['id' => $id]);
        $user->save();
    }
  2. Schließen Sie den aktuellen Datensatz von der Validierung aus:
    Im Validator verwenden wir den ID-Parameter, um zu erkennen, ob wir die Ressource aktualisieren oder erstellen:

    • Aktualisierung: Für eindeutige Validierungsregeln fügen Sie ,{$id} an zur Regel, um den aktuellen Datensatz auszuschließen. Zum Beispiel:

      'email' => 'unique:users,email,{$id}',
    • Erstellen: Geben Sie bei eindeutigen Validierungsregeln die ID nicht an. Zum Beispiel:

      'email' => 'unique:users,email',

Indem wir diese Schritte befolgen, können wir Aktualisieren Sie Laravel-Modelle elegant und stellen Sie gleichzeitig sicher, dass einzigartige Validierungsbeschränkungen respektiert werden.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3