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
Barbara Streisandoriginal
2024-11-27 16:29:11309parcourir

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"
]);

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",
]);

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",
]);

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!

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