Heim > Artikel > Backend-Entwicklung > Wie validiere ich die Einzigartigkeit mehrerer Spalten in Laravel?
In Laravel stellt die eindeutige Validierungsregel die Eindeutigkeit eines Werts in einer bestimmten Datenbankspalte sicher. Wenn es sich jedoch um mehrere Spalten handelt, ist es nicht einfach, deren kombinierte Eindeutigkeit zu überprüfen.
Wenn wir uns die Frage ansehen, haben wir zwei Spalten, IP und Hostname, in der Servertabelle. Um zu überprüfen, ob neben einem vorhandenen Hostnamenwert noch kein neuer Datensatz mit einem bestimmten IP-Wert in der Tabelle vorhanden ist, können wir Rule::unique verwenden.
Der folgende Codeausschnitt zeigt, wie die gewünschte Validierung erreicht wird :
<code class="php">$messages = [ 'data.ip.unique' => 'Given ip and hostname are not unique', ]; Validator::make($data, [ 'data.ip' => [ 'required', Rule::unique('servers') ->where(function ($query) use ($ip, $hostname) { return $query->where('ip', $ip) ->where('hostname', $hostname); }), ], ], $messages);</code>
Diese Validierungsregel prüft, ob in der Servertabelle bereits ein Datensatz mit derselben Kombination aus IP und Hostname vorhanden ist. Wenn dies der Fall ist, wird eine Fehlermeldung gemäß der in $messages angegebenen benutzerdefinierten Nachricht zurückgegeben. Durch die Definition des Where-Abschlusses können wir die genauen Bedingungen für die Einzigartigkeit festlegen und so sicherstellen, dass sowohl IP- als auch Hostnamenwerte berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie validiere ich die Einzigartigkeit mehrerer Spalten in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!