Verwenden von Rule::unique für die eindeutige Validierung mehrerer Spalten in Laravel
In Ihrer Laravel-Anwendung haben Sie eine Tabelle mit dem Namen „Server“. mit zwei Spalten: „ip“ und „hostname“. Sie möchten sicherstellen, dass eine Kombination dieser beiden Spalten eindeutig ist, um doppelte Einträge zu vermeiden. Während Sie bereits eine Validierungsregel für die Spalte „IP“ implementiert haben, möchten Sie diese Logik auch auf die Spalte „Hostname“ erweitern.
Um diese mehrspaltige eindeutige Validierung zu erreichen, können Sie die von Laravel nutzen Rule::unique-Methode. Hier ist eine modifizierte Version Ihrer Validierungsregel:
<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>
Erläuterung:
Diese aktualisierte Validierungsregel stellt sicher, dass die Kombination der Werte „IP“ und „Hostname“ in der Tabelle „Server“ eindeutig ist, wodurch doppelte Einträge mit derselben IP und demselben Hostnamen effektiv verhindert werden.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine mehrspaltige eindeutige Validierung mithilfe von Rule::unique in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!