亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
Méthode withInput() dans le contr?leur
Fonction d'assistance old() dans le modèle Blade
Points à noter et bonnes pratiques
Résumer
Maison développement back-end tutoriel php Laravel remplit automatiquement les données saisies par l'utilisateur après l'échec de la validation du formulaire

Laravel remplit automatiquement les données saisies par l'utilisateur après l'échec de la validation du formulaire

Oct 12, 2025 am 05:03 AM

Laravel remplit automatiquement les données saisies par l'utilisateur après l'échec de la validation du formulaire

Ce didacticiel explique en détail comment gérer efficacement les scénarios d'échec de validation de formulaire dans les applications Laravel pour garantir que les données précédemment saisies par l'utilisateur ne seront pas perdues. En utilisant la méthode withInput() dans le contr?leur pour flasher les données de la requête vers la session et en utilisant la fonction auxiliaire old() dans le modèle Blade, le remplissage automatique des champs de formulaire est obtenu, améliorant considérablement l'expérience utilisateur.

Dans le développement d'applications Web, après qu'un utilisateur a soumis un formulaire, si les données échouent à la vérification c?té serveur, il est généralement nécessaire de rediriger l'utilisateur vers la page du formulaire et d'afficher un message d'erreur. Cependant, un problème courant de l'expérience utilisateur est que lorsqu'une redirection se produit, les données que l'utilisateur a saisies dans le formulaire sont perdues et l'utilisateur doit remplir à nouveau tous les champs. Cela augmente non seulement la charge opérationnelle de l'utilisateur, mais peut également entra?ner sa perte. Laravel fournit un mécanisme simple et puissant pour résoudre ce problème, notamment via la méthode withInput() et la fonction d'assistance old().

Méthode withInput() dans le contr?leur

L'instance Validator de Laravel détecte toutes les erreurs de validation lorsque la validation du formulaire échoue. En règle générale, nous redirigeons l'utilisateur vers la page du formulaire avec ces messages d'erreur. Afin de conserver les données du formulaire soumises par l'utilisateur en même temps, nous devons appeler la méthode withInput() lors de la redirection.

La fonction de la méthode withInput() est de flasher toutes les données d'entrée de la requête en cours dans la session. Cela signifie que les données ne seront disponibles que lors de la prochaine requête et seront automatiquement effacées de la session par la suite, évitant ainsi une accumulation inutile de données de session.

Exemple de code de question d'origine (entrée non conservée)?:

Le code suivant montre un scénario dans lequel, après l'échec de la vérification, il redirige uniquement avec un message d'erreur sans conserver les entrées de l'utilisateur?:

 // ...autre code...

$validator = Validator::make($request->all(), [
    'PageLanguage.title.*' => 'obligatoire',
],[
    "required" => "Veuillez vérifier et remplir tous les champs obligatoires du formulaire." // Optimiser le message d'erreur]);

si ($validator->fails()) {
    redirection de retour('admin/page/create')
                ->withErrors($validator); // Les données saisies par l'utilisateur ne seront pas conservées pour le moment}

//...Logique après vérification...

Dans le code ci-dessus, si la vérification échoue, l'utilisateur sera redirigé vers la page admin/page/create, mais les données du formulaire précédemment remplies seront perdues.

Solution après avoir ajouté withInput()?:

Pour résoudre le problème de perte de données, ajoutez simplement la méthode ->withInput() dans la cha?ne de redirection?:

 // ...autre code...

$validator = Validator::make($request->all(), [
    'PageLanguage.title.*' => 'obligatoire',
],[
    "required" => "Veuillez vérifier et remplir tous les champs obligatoires du formulaire."
]);

si ($validator->fails()) {
    redirection de retour('admin/page/create')
                ->avecErreurs($validator)
                ->withInput(); // Ajoutez cette méthode pour conserver les données d'entrée de l'utilisateur}

//...Logique après vérification...

Désormais, lorsque la validation échoue et redirige, les données du formulaire précédemment soumises (y compris tous les paramètres $_POST et $_GET) sont stockées dans la session pour la requête suivante.

Fonction d'assistance old() dans le modèle Blade

Après avoir flashé les données via withInput() dans le contr?leur, nous devons récupérer correctement les données dans le modèle Blade et les remplir dans les champs de formulaire appropriés. Laravel fournit la fonction d'assistance old() pour ce faire.

La fonction old() accepte un paramètre, l'attribut name du champ de saisie que vous souhaitez récupérer. Si le champ existe dans les données d'entrée en mémoire flash, old() renvoie sa valeur ; sinon, il renvoie null.

Exemple d'utilisation?:

En supposant que votre champ de formulaire soit nommé name, vous pouvez utiliser old() dans le modèle Blade comme ceci?:

 <input type="text" name="name" value="{{ old('name') }}" class="form-control" placeholder="Veuillez entrer un nom">

Si votre application utilise un package auxiliaire de formulaire tel que LaravelCollective/html, son utilisation sera plus simple. Par exemple, pour une zone de saisie de texte?:

 {!! Form::text('nom', old('nom'), ['class' => 'form-control', 'placeholder' => '']) !!}

Ici, le deuxième paramètre de Form::text est la valeur par défaut du champ. Lorsque old('name') renvoie une valeur, elle est utilisée comme valeur par défaut ; sinon, le champ sera vide.

Gérer l'entrée sous forme de tableau?:

Dans la question d'origine, la règle de validation est 'PageLanguage.title.*' => 'required', ce qui indique que le formulaire peut recevoir des entrées sous la forme d'un tableau, comme PageLanguage[title][0], PageLanguage[title][1], etc. La fonction old() prend également en charge cette forme d'accès?:

 <!-- Pour une entrée comme PageLanguage[title][0] -->
<input type="text" name="PageLanguage[title][0]" value="{{ old('PageLanguage.title.0') }}" class="form-control">

<!-- Ou si votre formulaire est généré dynamiquement, vous pouvez y accéder via une boucle -->
@foreach($langues comme $index => $langue)
    <label for="title_{{ $index }}">{{ $langue->name }} titre?:</label>
    <type d name="PageLanguage[titre][{{ $index }}]" id="titre_{{ $index }}" value="{{ old('PageLanguage.title.' . $index) }}" classe="form-control">
@endforeach</type>

Notez que pour les tableaux imbriqués, la fonction old() utilise le point . pour accéder aux éléments enfants, tels que PageLanguage.title.0.

Points à noter et bonnes pratiques

  1. Valeur par défaut de la fonction old() : La fonction old() peut accepter le deuxième paramètre comme valeur par défaut. Lorsque le champ correspondant n'est pas trouvé dans les données flash, cette valeur par défaut sera utilisée. Ceci est particulièrement utile lors de la modification d'enregistrements existants.
     <input type="text" name="name" value="{{ old('name', $user->name ?? '') }}" class="form-control">

    Ici, si old('name') est vide, $user->name sera essayé.

  2. Fonctions d'assistance de formulaire?: bien que des packages comme LaravelCollective/html fournissent des méthodes de génération de formulaires pratiques, même sans les utiliser, il est parfaitement réalisable d'utiliser value="{{ old('field_name') }}" directement dans la balise HTML.
  3. Expérience utilisateur : Combinée aux messages d’erreur de validation et au remplissage des données, l’expérience utilisateur peut être grandement améliorée. Assurez-vous que le message d'erreur est clair, précis et indique quel champ doit être corrigé.
  4. Sécurité : La valeur renvoyée par la fonction old() a été automatiquement encodée par Laravel en entités HTML pour empêcher les attaques XSS. Par conséquent, il n’est généralement pas nécessaire de coder à nouveau manuellement.

Résumer

En utilisant intelligemment la méthode withInput() dans le contr?leur Laravel et en combinant la fonction d'assistance old() dans le modèle Blade, nous pouvons facilement implémenter le remplissage automatique des données saisies par l'utilisateur après l'échec de la validation du formulaire. Ce mécanisme simplifie non seulement le processus de développement, mais, plus important encore, il offre aux utilisateurs une expérience de soumission de formulaire fluide et ininterrompue, évitant ainsi la frustration causée par la perte de données. La ma?trise de cette compétence est une étape cruciale dans la création d’applications Laravel conviviales.

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 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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment vérifier si une adresse e-mail est valide en PHP? Comment vérifier si une adresse e-mail est valide en PHP? Sep 21, 2025 am 04:07 AM

Usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example: $ email = "user@example.com"; if (f ilter_var ($ e-mail, filter_validate_email) && checkdnsrr (explosage ('@', $ e-mail) [1], 'mx')) {echo "ValidAndDeliverableMail & Qu

Comment faire une copie profonde ou un clone d'un objet en PHP? Comment faire une copie profonde ou un clone d'un objet en PHP? Sep 21, 2025 am 12:30 AM

UseUnserialize (serialize ($ obj)) FordopcopyingwhenallDataisSerializable; Sinon, implémentez__Clone () TomanuallyDuplicatesedObjectsAndavoidSharedReferences.

Comment fusionner deux tableaux en php? Comment fusionner deux tableaux en php? Sep 21, 2025 am 12:26 AM

UseArray_merge () toCombineArrays, écrasant leduplicatestringKeysAndreIndexingNumericKeys; ForsimplecCaTencatenation, en particulierInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Comment utiliser des espaces de noms dans un projet PHP? Comment utiliser des espaces de noms dans un projet PHP? Sep 21, 2025 am 01:28 AM

NamespacesInphporganizEcodeAndPreventnamingConflictsBygroupingClasses, Interfaces, Functions et ConstantsunSunSaspecificName.2.DefineanamespaceusingTheNamesPaceSpaceKeyWordAtTopofaFile, suiviByTheNamesPacename, Suchasapp \ Controlers...USUSEUSEKEYWORDTOI

Comment mettre à jour un enregistrement dans une base de données avec PHP? Comment mettre à jour un enregistrement dans une base de données avec PHP? Sep 21, 2025 am 04:47 AM

ToupDateAdatabasereCorDinPhp, FirstConnectUsingPDoOrmysQLi, theNusepreparedStationStoExECUSEASECURSQLUPDATEQUERY.example: $ pdo = newPDO ("MySql: host = localhost; dbname = votre_database", $ username, $ mot de passe); $ sql = "dameussem =.

Quelles sont les méthodes magiques en PHP et fournissent un exemple de `__Call () 'et` __get ()'. Quelles sont les méthodes magiques en PHP et fournissent un exemple de `__Call () 'et` __get ()'. Sep 20, 2025 am 12:50 AM

La méthodiette () méthodiste axée sur le point de réviser la mise en ?uvre de l'inscription, ce qui permet de faire de la maintenance à la qualité de qualité et

Comment obtenir l'extension de fichier en php? Comment obtenir l'extension de fichier en php? Sep 20, 2025 am 05:11 AM

UsePathinfo ($ nom de fichier, pathinfo_extension) togetThefileExtension; itreliabblyHandlesMultipledototsEdGasases, renvoyantTheExtension (par exemple, "pdf") oranemptystringefNoneExists.

Comment créer une archive zip de fichiers dans PHP? Comment créer une archive zip de fichiers dans PHP? Sep 18, 2025 am 12:42 AM

Utilisez la classe Ziparchive pour créer un fichier zip. Instancier et ouvrir le zip cible, ajouter des fichiers avec addFile, prendre en charge les chemins internes personnalisés, les fonctions récursives peuvent emballer l'intégralité du répertoire et enfin appeler près pour enregistrer pour s'assurer que PHP a des autorisations d'écriture.

See all articles