Heim  >  Artikel  >  Backend-Entwicklung  >  Wie validiere ich die Einzigartigkeit mehrerer Spalten in Laravel?

Wie validiere ich die Einzigartigkeit mehrerer Spalten in Laravel?

DDD
DDDOriginal
2024-11-02 14:01:02204Durchsuche

How to Validate the Uniqueness of Multiple Columns in Laravel?

Validieren mehrerer Spalten auf Eindeutigkeit 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!

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