2017-10-20 136 views
0

我很難找到關於如何在使用我的代碼在Laravel 5.5中進行驗證失敗時返回輸入的文檔。任何人都可以告訴我如何驗證失敗後返回輸入?驗證絕對有效。是否有可能使用此驗證方法返回輸入,或者我應該嘗試其他方法嗎?這裏是我的控制器:嘗試在驗證失敗後返回Laravel 5.5中的輸入

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

你的意思是_return inputs_ ??! –

+1

他想要提交舊值(使用'{{old('phone'}}') – ljubadr

回答

2

使用withInput()

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

而在你的刀片顯示usernameold('username')舊輸入

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

嘿......我可能會誤解,但不是驗證數組代碼之後的所有代碼在數據驗證完成後執行?因此,無效數據不會返回? – Hennessey

+0

很好的顯示錯誤的數據,即錯誤,即'flfkf22 @ 22'是無效的電子郵件,你應該顯示錯誤的電子郵件和錯誤。 >'with'('data',$ data)''你用'withInput()'發送所有輸入'' – C2486

+0

你可以排除一些數據,如'$ request-> except('password')'參見文檔鏈接 – C2486

0

你爲什麼不上調用validate方法請求對象?你只需要在控制器的方法中注入Request對象。

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

如果驗證失敗,它會自動重定向到以前的請求並提供舊數據。

+0

一旦你使用請求對象如圖所示,您可以使用刀片模板中的{{old('phone')}}訪問舊輸入,甚至可以使用默認值{{old('phone','默認')}} – AndraeRay