Wie validiere ich die Einzigartigkeit mehrerer Spalten in Laravel?

DDD
Freigeben: 2024-11-02 14:01:02
Original
203 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!