【问题标题】:How to keep form's values when doing a redirect进行重定向时如何保留表单值
【发布时间】:2018-06-15 09:42:15
【问题描述】:

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

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

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

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

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

感谢您的帮助。

【问题讨论】:

标签: laravel forms redirect


【解决方案1】:

在您的 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')}}"

【讨论】:

  • 如果不定义旧值,是否不会触发错误?
  • 您可以随时检查是否定义了值 @if(isset('username') old('username') @endisset
猜你喜欢
  • 2015-05-01
  • 2023-02-18
  • 2019-11-16
  • 1970-01-01
  • 2012-03-07
  • 2012-05-21
  • 2013-01-03
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多