在Laravel 4中重定向时保留表单值

时间:2015-02-28 12:19:36

标签: forms redirect laravel laravel-4 laravel-routing

我试图在Redirect ::回到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); }}

但它仍然无法奏效。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

Redirect::back()

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

因此您可以将代码替换为以下代码。

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

这里是back() helper function documentation的链接。