Méthode d'optimisation pour les règles de validation uniques et existantes dans Laravel

小云云
Libérer: 2023-03-19 17:46:02
original
2093 Les gens l'ont consulté

Laravel fournit plusieurs méthodes pour valider les données d'entrée de l'application. Par défaut, les classes de base du contrôleur de Laravel utilisent le trait ValidatesRequests, qui fournit des méthodes pratiques pour valider les requêtes HTTP entrantes via une variété de règles de validation puissantes. Cet article vous présente principalement les informations pertinentes sur l'optimisation des règles de validation uniques et existantes dans Laravel. L'article le présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour l'étude ou le travail de chacun. .

Il est très pratique de vérifier les requêtes via le trait ValidatesRequests dans Laravel, et il est automatiquement introduit dans la classe BaseController. Les deux règles exitsts() et unique() sont très puissantes et pratiques.

Ils doivent vérifier les données existantes dans la base de données lors de leur utilisation. Habituellement, ils sont écrits comme suit :


// exists example
'email' => 'exists:staff,account_id,1'
// unique example
'email' => 'unique:users,email_address,$user->id,id,account_id,1'
Copier après la connexion

La syntaxe de l'écriture ci-dessus. La méthode est difficile à retenir et nous devons consulter la documentation presque chaque fois que nous l'utilisons. Mais à partir de la version 5.3.18 de Laravel, les deux règles de validation peuvent être simplifiées grâce à une nouvelle classe Rule.

Nous pouvons maintenant obtenir le même effet en utilisant la syntaxe de chaîne familière comme celle-ci :


'email' => [
 'required',
 Rule::exists('staff')->where(function ($query) {
 $query->where('account_id', 1);
 }),
],
Copier après la connexion


'email' => [
 'required',
 Rule::unique('users')->ignore($user->id)->where(function ($query) {
 $query->where('account_id', 1);
 })
],
Copier après la connexion

Les deux règles de validation prennent également en charge la méthode de chaîne suivante :

  • where

  • whereNot

  • whereNull

  • whereNotNull

les règles de vérification uniques prennent également en charge la méthode ignore, afin que vous puissiez ignorer des données spécifiques.

La bonne nouvelle est que l'ancienne façon d'écrire est toujours entièrement prise en charge, et la nouvelle façon d'écrire la convertit en fait en l'ancienne façon d'écrire sous le capot grâce à la méthode formatWheres :


protected function formatWheres()
{
 return collect($this->wheres)->map(function ($where) {
 return $where['column'].','.$where['value'];
 })->implode(',');
}
Copier après la connexion

Recommandations associées :

Les règles de validation alpha de Laravel5.1 ne sont pas valides pour le chinois ?

Validation complète du formulaire règles du framework PHP Yii

Règles complètes de validation du formulaire YII

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!