重定向回 Laravel 4 时保留表单值

Keep form values when redirect back in Laravel 4

当 Redirect::back 在 Laravel 4 时,我试图保留表单的值,但我找不到执行此操作的方法。

这是我的表格:

{{ Form::open(array('route' => 'generate', 'files' => true)) }}

    {{ Form::radio('myType', '1', true); }}
    {{ Form::label('myType', '1'); }}

    {{ Form::radio('myType', '2'); }}
    {{ Form::label('myType', '2'); }}

    {{ Form::radio('myType', '3'); }}
    {{ Form::label('myType', '3'); }}

    {{ Form::text('myName'); }}

    {{ Form::file('uploadImage'); }}

    {{ Form::submit('Go'); }}

{{ Form::close() }}

我的控制器:

$validator = Validator::make(Input::all(), array('uploadImage' => 'required|image', 'myName' => 'required'));

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

我试过类似的方法:

return Redirect::back()->withErrors($validator)->with('nameValue', Input::get('myName'));

然后在视图中:

    {{ Form::text('myName', $nameValue); }}

但是还是不行。任何帮助将不胜感激。

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

更改为,

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

您可以通过Input::old()方法检索该值。

read more

您尝试过: return Redirect::back()->withErrors($validator)->with('nameValue', Input::get('myName'));

上面,你可以从Session中获取值。

Session::get('nameValue')

嘿,如果您使用的是 laravel 5.2 或更高版本,则无需编写

Redirect::back()

您可以简单地使用 back() 辅助函数来完成此操作。

所以你可以用下面的代码替换你的代码。

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

这是 back() helper function documentation 的 link。