Heim  >  Artikel  >  Backend-Entwicklung  >  Wie aktualisiere ich ein Laravel-Modell mit eindeutigen Validierungsregeln ohne Fehler?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 19:18:30561Durchsuche

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>

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>
  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>
    • Erstellen: Geben Sie bei eindeutigen Validierungsregeln die ID nicht an. Zum Beispiel:

      <code class="php">'email' => 'unique:users,email',</code>

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!

Stellungnahme:
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