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'
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); }), ],
'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 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:
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!