-1
votes

Peut-on avoir moins de code pour le formulaire de validation à Laravel si j'ai plus de 20 entrées

Si j'ai plus de 20 champs, pouvons-nous valider cela avec moins de code ??? Je ne veux pas écrire requis pour toutes les entrées.

$request->validate([
        'first_name' => 'required',
        'last_name' => 'required',
        'gender' => 'required',
        'date_of_birth' => 'required',
        'place_of_birth' => 'required',
        'nationality' => 'required',
        'mobile_number' => 'required',
        'email' => 'required|email|unique:informations',
        'home_region' => 'required',
        'digital_address' => 'required',
        'school_name' => 'required',
        'school_region' => 'required',
        'school_digital_address' => 'required',
        'school_level' => 'required',
        'school_program_of_study' => 'required',
        'patron_first_name' => 'required',
        'patron_last_name' => 'required',
        'patron_gender' => 'required',
        'patron_mobile_number' => 'required'


    ]);


2 commentaires

Comme le code de travail est plus adapté à CODEREVIEWS SE - mais j'ai le sentiment que cela ne serait pas sur le sujet.


Il s'agit que de 20 lignes de code qui vérifient automatiquement tout pour vous, par opposition à vous écrivez tout le code de validation, en vous assurant que cela fonctionne, des tests, etc. Combien de temps peut-il obtenir?


3 Réponses :


-1
votes

C'est le code minimal que Laravel doit fonctionner la validation.

Si vous n'entrez pas le nom de chaque champ, comment est-il censé savoir que l'entrée manquante de la demande est requise? Laravel a besoin de chaque nom d'entrée marqué.


0 commentaires

-1
votes

en fait oui il y a un moyen.

Ceci est votre code xxx

maintenant dans votre formulaire HTML pour tous ces champs, vous devez faire une matrice pour cela comme ceci xxx

et dans votre contrôleur ou votre demande, vous pouvez créer ce tableau requis comme celui-ci xxx

de cette façon que vous pouvez avoir Moins d'index dans votre tableau;), espérons que cela aidera


5 commentaires

Comment le validateur voudrait-il savoir que personne.first_name est requis et non personne.last_name est requis ?!


Ne voyez-vous pas @ n69s dans mon validateur que je l'ai fait comme une matrice


Je vois, mais l'attribut de sorcière de ce tableau est requis ? Combien d'entre eux sont nécessaires? Comment savez-vous qu'un attribut manque-t-il à ceux désirés?


C'est pour tous, tous les éléments du tableau (personne) sont nécessaires. Résumer PHP 'Personne. *' => 'Requis' Vérifiez le panneau d'astérisque juste après le nom de la matrice


Disons que dans le formulaire I Supprimer / désactiver le nom d'entrée first_name de sorte que ce n'est pas envoyé dans la requête, votre vérificateur de validateur pour cela? Va-t-il renvoyer premier_name requis ?



0
votes

Bien sûr! Voici comment, itérer à travers toutes les données de demande (y compris ceux que vous n'avez pas l'intention d'avoir envoyé ce qui en fait une mauvaise idée) et de les valider à être requis, à l'exception de ceux qui nécessitent plus de règles telles que «e-mail» (celles-ci peuvent être validées par elles-mêmes )

$data = array_except($request->all(), ['_token', 'email']);
foreach ($data as $key => $value) {
  $request->validate([$key => 'required']);
}
$request->validate(['email' => 'required|email|unique:informations']);


0 commentaires