尝试在验证失败后返回Laravel 5.5中的输入

问题描述:

我很难找到关于如何在使用我的代码在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

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

你为什么不上调用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