Optimierungsmethode für eindeutige und vorhandene Validierungsregeln in Laravel

小云云
Freigeben: 2023-03-19 17:46:02
Original
2157 Leute haben es durchsucht

Laravel bietet mehrere Methoden zur Validierung 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. Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zur Optimierung einzigartiger und vorhandener Validierungsregeln in Laravel ein. Ich hoffe, dass er jedem helfen kann .

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

Die Syntax des obigen Schreibens Die Methode ist schwer zu merken und wir müssen fast jedes Mal, wenn wir sie verwenden, die Dokumentation nachschlagen. Aber ab Laravel-Version 5.3.18 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);
 }),
],
Nach dem Login kopieren


'email' => [
 'required',
 Rule::unique('users')->ignore($user->id)->where(function ($query) {
 $query->where('account_id', 1);
 })
],
Nach dem Login kopieren

Beide Validierungsregeln unterstützen auch die folgende Kettenmethode:

  • where

  • whereNot

  • whereNull

  • whereNotNull

Eindeutige Verifizierungsregeln unterstützen auch die Ignoriermethode, sodass Sie 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(',');
}
Nach dem Login kopieren

Verwandte Empfehlungen:

Laravel5.1-Validierungsregeln Alpha sind für Chinesisch ungültig?

Formularvalidierung abschließen Regeln des PHP Yii-Frameworks

Vollständige YII-Formularvalidierungsregeln

Das obige ist der detaillierte Inhalt vonOptimierungsmethode für eindeutige und vorhandene Validierungsregeln in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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