Maison  >  Article  >  développement back-end  >  Explication détaillée des étapes d'optimisation pour les règles de validation uniques et existantes dans Laravel

Explication détaillée des étapes d'optimisation pour les règles de validation uniques et existantes dans Laravel

php中世界最好的语言
php中世界最好的语言original
2018-05-19 14:04:571350parcourir

Cette fois, je vous apporte une explication détaillée des étapes d'optimisation pour les règles de validation uniques et existantes dans Laravel. Quelles sont les précautions pour optimiser les règles de validation uniques et existantes dans Laravel. les cas pratiques, jetons un oeil.

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, la classe de base

Controller de Laravel utilise 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 l'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'
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 désormais utiliser la syntaxe de chaînage familière ci-dessous pour obtenir le même effet :

'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);
 })
],
Les deux règles de validation prennent également en charge la méthode de chaînage suivante :

  • whereNot

  • whereNull

  • whereNotNull

les règles de validation uniques prennent également en charge la méthode ignore, afin que des données spécifiques puissent être ignorées lors de la validation.

La bonne nouvelle est que l'ancienne méthode d'écriture est toujours entièrement prise en charge, et la nouvelle méthode d'écriture la convertit en fait en l'ancienne méthode d'écriture en bas via la méthode formatWheres :

protected function formatWheres()
{
 return collect($this->wheres)->map(function ($where) {
 return $where['column'].','.$where['value'];
 })->implode(',');
}
Je pense que vous l'avez lu. Vous maîtrisez la méthode dans le cas de cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée de l'utilisation des listes doublement chaînées en PHP

Explication détaillée des étapes pour convertir un tableau en utilisant foreach en PHP

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!

Déclaration:
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