Identifier les problèmes liés à la validation de ce formulaire
P粉296080076
2023-08-31 17:10:00
<p>J'utilise Laravel 5.8 et j'ai créé cette méthode de contrôleur pour créer des enregistrements dans la base de données. </p>
<pre class="brush:php;toolbar:false;">fonction publique doTheUpload(Request $request)
{
essayer{
$request->valider([
'video' => 'nullable|mimes:mp4',
'video_thumb' => 'obligatoire|mimes:jpg,png,jpeg',
'video_name' => 'obligatoire',
'video_desc' => 'nullable',
'available_download' => 'nullable',
],[
'video.mimes' => 'le format de fichier vidéo n'est pas valide',
'video_thumb.required' => 'le téléchargement de la miniature de la vidéo est requis',
'video_name.required' => 'vous devez entrer le nom de la vidéo',
'video_thumb.mimes' => 'le format du fichier de vignette de l'image n'est pas valide',
]);
//Faire le processus de téléchargement
}attraper(Exception $e){
jj($e);
}
}</pré>
<p>Mais cela ne fonctionnera pas et renvoie cette erreur : </p>
<h2><strong>Les données fournies ne sont pas valides. </strong></h2>
<p>Cela est essentiellement dû aux demandes de validation du formulaire et lorsque je supprime ces validations de la méthode, cela fonctionne très bien. </p>
<p>Alors, quel est le problème avec la validation des requêtes de formulaire qui renvoient cette erreur ? </p>
<p>Si vous le savez, faites-le-moi savoir... J'apprécierais vraiment toutes vos idées ou suggestions. </p>
<p>Merci. </p>
Vous devez préciser exactement ce que vous souhaitez vérifier :
Mon exemple de code :
Lorsque vous utilisez la validation de Laravel, vous devez laisser Laravel gérer les erreurs car Laravel lancera automatiquement une exception lorsqu'une règle échoue. Par conséquent, la première suggestion est de ne pas utiliser de blocs try-catch dans les routines de validation.
Comme le dit la documentation Laravel : p>
De plus, je vous recommande de ne pas utiliser la validation dans votre contrôleur car selon les bonnes pratiques, il est recommandé de créer un formulaire séparé pour la validation, vous devez donc légèrement modifier votre contrôleur pour inclure une classe validateur :
Vous devez maintenant créer une demande de formulaire, peut-être en utilisant php artisan make:request UploadVideoRequest Cette commande créera une classe de demande de formulaire sous
app/Http/Requests
app/Http/Requests
que vous devrez remplir avec :En utilisant cette approche, Laravel valide les entrées de l'utilisateur et gère les erreurs via des exceptions.
Salutations.