2017-10-20 59 views
0

J'ai du mal à trouver de la documentation sur la façon de renvoyer des entrées lorsque ma validation échoue dans Laravel 5.5 en utilisant mon code. Quelqu'un peut-il me dire comment retourner les entrées après la validation échoue? La validation fonctionne définitivement. Est-il possible de retourner les entrées avec cette méthode de validation, ou devrais-je essayer d'une autre manière? Voici mon contrôleur:Tenter de renvoyer des entrées dans Laravel 5.5 après une validation échouée

public function submit() 
{ 

     $this->validate(request(),[ 

      'first' => 'required|alpha', 
      'last' => 'required|alpha', 
      'credentials' => 'required|alpha', 
      'specialty'=>'required|alpha', 
      'email' => 'required|email', 
      'pi' => 'required|alpha', 
      'address1' => 'required|alpha', 
      'address2' => 'required|alpha', 
      'city' => 'required|alpha', 
      'state'=>'required|alpha', 
      'zip' => 'required|numeric', 
      'phone' => 'required|alpha' 

     ]); 

     $data = request()->all(); 

     return view('hcp.forms.form-complete')->with('data', $data); 
} 
+0

Que voulez-vous dire par _retour les entrées_ ??! –

+1

Il veut avoir d'anciennes valeurs de submit (pour utiliser '{{old ('phone'}}') – ljubadr

Répondre

2

utilisation withInput()

return view('hcp.forms.form-complete')->with('data', $data)->withInput(); 

et afficher votre ancienne entrée pour username comme old('username') dans votre lame

<input type="text" name="username" value="{{ old('username') }}"> 
+0

Hey ... Je peux me tromper, mais ce n'est pas tout le code après le code du tableau de validation qui sera seulement exécuter après que les données ont été validées? Ainsi, les données invalides ne reviendront pas? – Hennessey

+0

Son bon pour afficher des données erronées avec erreur que, par exemple 'flfkf22 @ 22' est un email invalide, vous devriez afficher à la fois erreur email et erreur. > avec ('data', $ data) 'comme vous envoyez toutes les entrées avec' withInput() ' – C2486

+0

Vous pouvez exclure certaines données comme' $ request-> except ('password') 'voir le lien doc – C2486

0

Pourquoi ne vous appelez pas la méthode de validation sur l'objet de requête? Vous avez seulement besoin d'injecter l'objet Request dans la méthode de votre contrôleur.

public function submit(Request $request) 
{ 
    $request->validate([ 
     'first' => 'required|alpha', 
     'last' => 'required|alpha', 
     'credentials' => 'required|alpha', 
     'specialty'=>'required|alpha', 
     'email' => 'required|email', 
     'pi' => 'required|alpha', 
     'address1' => 'required|alpha', 
     'address2' => 'required|alpha', 
     'city' => 'required|alpha', 
     'state'=>'required|alpha', 
     'zip' => 'required|numeric', 
     'phone' => 'required|alpha' 
    ]); 

Si la validation échoue, cela redirige automatiquement vers la demande précédente avec les anciennes données disponibles.

+0

Une fois que vous utilisez l'objet de requête comme indiqué ici, vous pouvez accéder à l'ancienne entrée en utilisant {{old ('phone')}} dans votre modèle de lame.Vous pouvez même avoir une valeur par défaut comme ceci {{old ('phone', ' Défaut') }} – AndraeRay