Laravel-Modell mit eindeutigen Einschränkungen während der Aktualisierung erneut validieren
Bei der Arbeit mit Laravel-Eloquent-Modellen, die eindeutige Validierungsregeln erzwingen, kann die Aktualisierung des Modells eine Validierung auslösen Fehler, wenn die geänderten Werte mit vorhandenen Datensätzen übereinstimmen. Um dieses Problem zu beheben, überprüfen Entwickler bei der Aktualisierung häufig die Attribute des Modells erneut. Dieser Ansatz kann jedoch zu Problemen bei der erforderlichen Regelvalidierung führen.
Im bereitgestellten Beispiel validiert die Update-Methode im Repository die Attribute des Modells mithilfe der Validate-Methode. Bei dieser Validierung gelten jedoch dieselben eindeutigen Regeln wie beim Erstellen eines neuen Modells. Infolgedessen schlägt die Validierung beim Aktualisieren des Modells mit vorhandenen Werten fehl.
Um dieses Problem zu beheben, können Sie die Validierungsregeln anpassen, um die ID der zu aktualisierenden Instanz zu ignorieren.
Validierungsregeln anpassen:
<code class="php">$user = $this->findById($id); $user->fill($data); $this->validate($user->toArray(), ['id' => $user->id]);</code>
<code class="php">// Validation rules 'username' => Validator::make($data, [ 'username' => 'required|unique:users,username,' . ($id ?? null), ]);</code>
<code class="php">'username' => 'required|unique:users,username,' . ($id ?? null),</code>
<code class="php">'username' => 'required|unique:users,username',</code>
Durch die Einbindung dieser Anpassung ignoriert das Framework die Eindeutigkeitsbeschränkung für die vorhandene ID, sodass Sie das Modell aktualisieren können, ohne Validierungsfehler aufgrund von Duplikaten auszulösen Feldwerte.
Das obige ist der detaillierte Inhalt vonWie kann man Laravel-Modelle mit eindeutigen Einschränkungen während Aktualisierungen erneut validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!