Dieser Artikel stellt Ihnen hauptsächlich relevante Informationen zur Optimierung einzigartiger und vorhandener Validierungsregeln in Laravel vor. Er bietet einen gewissen Referenz-Lernwert für alle, die ihn benötigen Lassen Sie uns gemeinsam mit dem Herausgeber unten lernen.
Vorwort
Laravel bietet eine Vielzahl von Methoden zur Überprüfung von Anwendungseingabedaten. Standardmäßig verwenden die Controller-Basisklassen von Laravel das Merkmal ValidatesRequests, das praktische Methoden zur Validierung eingehender HTTP-Anfragen durch eine Vielzahl leistungsstarker Validierungsregeln bereitstellt.
Es ist sehr praktisch, Anfragen über das ValidatesRequests-Merkmal in Laravel zu überprüfen, und es wird automatisch in die BaseController-Klasse eingeführt. Die beiden Regeln exitsts() und unique() sind sehr mächtig und praktisch.
Sie müssen die vorhandenen Daten in der Datenbank während der Verwendung überprüfen. Normalerweise werden sie wie folgt geschrieben:
// exists example 'email' => 'exists:staff,account_id,1' // unique example 'email' => 'unique:users,email_address,$user->id,id,account_id,1'
Die Syntax der Die obige Schreibmethode ist schwer zu merken. Wir müssen die Dokumentation fast jedes Mal nachschlagen, wenn wir sie verwenden. Aber ab Version 5.3.18 von Laravel können beide Validierungsregeln durch eine neue Regelklasse vereinfacht werden.
Den gleichen Effekt können wir jetzt mit der bekannten Kettensyntax wie folgt erzielen:
'email' => [ 'required', Rule::exists('staff')->where(function ($query) { $query->where('account_id', 1); }), ],
'email' => [ 'required', Rule::unique('users')->ignore($user->id)->where(function ($query) { $query->where('account_id', 1); }) ],
Beide Validierungsregeln unterstützen auch die folgende Kettenmethode:
where
whereNot
whereNull
whereNotNull
Eindeutige Verifizierungsregeln unterstützen auch die Ignoriermethode, sodass Sie bei der Verifizierung manchmal bestimmte Daten ignorieren können.
Die gute Nachricht ist, dass die alte Schreibweise immer noch vollständig unterstützt wird und die neue Schreibweise sie unter der Haube durch die FormatWheres-Methode tatsächlich in die alte Schreibweise umwandelt:
protected function formatWheres() { return collect($this->wheres)->map(function ($where) { return $where['column'].','.$where['value']; })->implode(','); }
Verwandte Empfehlungen:
PHP-Methode zur Bestimmung, ob die IP eine gültige IP-Adresse ist Beispiel
PHP-Tipps zur Verhinderung von Cross-Site- und XSS-Angriffscode
Das obige ist der detaillierte Inhalt vonOptimierung eindeutiger und vorhandener Validierungsregeln in Laravel. Detailliertes PHP-Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!