在Laravel中使用请求和响应

时间:2014-11-04 13:02:23

标签: php laravel laravel-4 laravel-routing http-redirect

这是我的表格

{{ 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);

但在上面进行操作时,即使页面重新加载,表单中填写的值也会消失。如何在没有值消失的情况下完成错误?

有没有办法填写输入表单中的字段?

3 个答案:

答案 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()链式方法。

在此处详细了解http://laravel.com/docs/4.2/requests

答案 2 :(得分:1)

我们假设你有这样的验证:

$validation = Validator::make($input, $rules);

然后你需要这样做:

if( $validation->fails() )
{
    return Redirect::back()->withInput()->withErrors($validator->messages());
}

请注意Redirect::back(),它允许您返回表单并自动填写用户输入