Maison > développement back-end > tutoriel php > Exemple php détaillé d'optimisation de règles de validation uniques et existantes dans Laravel

Exemple php détaillé d'optimisation de règles de validation uniques et existantes dans Laravel

jacklove
Libérer: 2023-04-02 06:22:02
original
1604 Les gens l'ont consulté

Cet article vous présente principalement des 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 les études ou le travail de tous les amis qui en ont besoin. Apprenons avec l'éditeur ci-dessous.

Préface

Laravel fournit une variété de méthodes pour vérifier 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.

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. la méthode d'écriture ci-dessus est difficile à retenir. 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 validation uniques prennent également en charge la méthode ignore, ce qui permet d'ignorer des données spécifiques lors de la validation.

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 :

php Méthode pour déterminer si l'IP est une IP valide exemple d'adresse php

Définition de la classe de cryptage AES et exemple d'utilisation des compétences php implémentées par php

Conseils PHP pour empêcher le code d'attaque cross-site et xss

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