这是我的表格
{{ Form::open(array('url' => 'register', 'class' => 'form-signin')) }}
// form username , password .. fields here
{{ Form::close() }}
路线是
Route::post('register', 'RegisterController@registeruser');
控制器
public function registeruser()
{
//validation
return Redirect::to('/')->withErrors($validator); // main
}
因为,我被重定向,我不会在表格中填写任何字段。
我知道我应该使用请求和响应。
我尝试了下面的反应,即使这是一次可怕的尝试。
return Response::view('home')->header('utf-8', $messages);
但在上面进行操作时,即使页面重新加载,表单中填写的值也会消失。如何在没有值消失的情况下完成错误?
有没有办法填写输入表单中的字段?
答案 0 :(得分:2)
您需要使用->withInput()
return Redirect::to('/')->withInput()->withErrors($validator); // main
答案 1 :(得分:1)
您可以使用Input :: flash()
public function registeruser()
{
//validation
Input::flash();
return Redirect::to('/')->withErrors($validator); // main
}
然后在处理重定向的控制器方法中,您可以使用Input :: old()访问旧输入。使用Input :: all()只会返回当前请求的数据。
您还可以在返回行上使用 - > withInput()链式方法。
答案 2 :(得分:1)
我们假设你有这样的验证:
$validation = Validator::make($input, $rules);
然后你需要这样做:
if( $validation->fails() )
{
return Redirect::back()->withInput()->withErrors($validator->messages());
}
请注意Redirect::back()
,它允许您返回表单并自动填写用户输入