Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man eine mehrspaltige eindeutige Validierung mithilfe von Rule::unique in Laravel?

Wie implementiert man eine mehrspaltige eindeutige Validierung mithilfe von Rule::unique in Laravel?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 05:21:021038Durchsuche

How to Implement Multi-Column Unique Validation Using Rule::unique in Laravel?

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:

  • Regel::unique('servers') : Gibt an, dass die Validierungsregel auf die Tabelle „Server“ angewendet werden soll.
  • wobei: Wird verwendet, um die eindeutige Prüfung anhand zusätzlicher Kriterien zu filtern. In diesem Fall filtern wir sowohl nach den Spalten „IP“ als auch „Hostname“.
  • $ip** und **$hostname: Es wird davon ausgegangen, dass diese Variablen die von Ihnen angegebenen Werte enthalten validieren möchten.
  • $messages: Ein optionales Array, mit dem Sie die Fehlermeldung anpassen können, die angezeigt wird, wenn die Validierung fehlschlägt.

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!

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