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

Posted

技术标签:

【中文标题】在 Laravel 4 中重定向回时保留表单值【英文标题】:Keep form values when redirect back in Laravel 4 【发布时间】:2015-05-01 03:24:15 【问题描述】:

我试图在 Laravel 4 上 Redirect::back 时保留表单的值,但我找不到这样做的方法。

这是我的表格:

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

但它仍然不起作用。任何帮助将不胜感激。

【问题讨论】:

【参考方案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')

【讨论】:

【参考方案2】:

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

Redirect::back()

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

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

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

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

【讨论】:

以上是关于在 Laravel 4 中重定向回时保留表单值的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中使用紧凑值重定向

在 Laravel 4 中重定向更改 Auth::check() 的状态

在 Laravel 中重定向域名

在 Laravel 5.3 中重定向路由

维护模式与中间件在 Laravel 中重定向

在 Laravel 5.8 中的 htaccess 中重定向 [重复]