Maison > développement back-end > tutoriel php > Comment valider des tableaux dans Laravel : soumissions vides et meilleures pratiques ?

Comment valider des tableaux dans Laravel : soumissions vides et meilleures pratiques ?

Barbara Streisand
Libérer: 2024-11-27 16:29:11
original
289 Les gens l'ont consulté

How to Validate Arrays in Laravel: Empty Submissions and Best Practices?

Validation des tableaux dans Laravel

Lors de la tentative de validation d'un tableau dans Laravel à l'aide du code suivant :

$validator = Validator::make($request->all(), [
    "name.*" => 'required|distinct|min:3',
    "amount.*" => 'required|integer|min:1',
    "description.*" => "required|string"
]);
Copier après la connexion

Vous pouvez rencontrer un scénario inattendu dans lequel une soumission POST vide est reconnue par erreur comme valide, ce qui entraîne une erreur. positif.

Cette confusion survient parce que le symbole astérisque (*) dans le code est destiné à valider les valeurs dans le tableau, pas le tableau lui-même. Pour résoudre ce problème, les règles de validation doivent être modifiées pour vérifier la présence du tableau :

$validator = Validator::make($request->all(), [
    "names"    => "required|array|min:3",
    "names.*"  => "required|string|distinct|min:3",
]);
Copier après la connexion

Dans ce code ajusté :

  • "names" garantit que les "names " La clé dans les données POST est présente et contient un tableau.
  • "names.*" valide ensuite les valeurs individuelles dans le tableau "names", en s'assurant qu'elles sont obligatoires et uniques chaînes d'une longueur minimale de 3 caractères.

Depuis Laravel 5.5, une approche simplifiée peut être utilisée :

$data = $request->validate([
    "names"    => "required|array|min:3",
    "names.*"  => "required|string|distinct|min:3",
]);
Copier après la connexion

Cette syntaxe compacte effectue directement la validation sur l'objet Request, éliminant la nécessité de l'intermédiaire $validator.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal