首页 > 解决方案 > 进行重定向时如何保留表单的值

问题描述

我正在使用 Laravel 5.6 做一个静态网站,这意味着我的服务器没有异步请求。在我的网站/users/create中,我有一个添加新用户的表单。

当此表单的字段中有错误时,UserController重定向到相同的地址/users/create,但使用闪存数据打印有错误:

return redirect('/users/create')->with(['status' => 'Errors in the form.']);

但问题是这样做时我丢失了表单的所有数据。有没有一种简单的方法可以在我的情况下保留表单的数据?

我希望此功能工作的浏览器是 Firefox 和/或 Chrome。无需为 IE 或任何其他浏览器烦恼。我注意到在这两个浏览器上进行刷新时,表单的数据总是被保留,我想知道我是否可以将它用于我的网站。也许有一个 Laravel 助手可以使用闪存数据进行刷新请求?

谢谢您的帮助。

标签: laravelformsredirect

解决方案


在您的UserController中,您可以使用

return redirect()->back()->withInput();

并在您看来检索旧值

<input type="text" name="username" value="{{ old('username') }}"> 

有关更多信息,您可以访问官方文档https://laravel.com/docs/5.6/requests#old-input

更新

您还可以将默认值设置为旧输入

value="{{old('username', 'default_value')}}"

推荐阅读