如何使用输入将表单重定向回原来的位置 - Laravel 5
问题:在Laravel 5中如何将输入重定向回表单页面?
原因:如果不使用value = {{ old('') }}
在HTML中,无法将输入值返回,因为会话只会将其存储在缓存中。
解决方法:
1. 在HTML中使用value = {{ old('name') }}
来显示输入值:
<input type="text" name="name" value="{{ old('name') }}" />
2. 在重定向时将输入值传递回表单页面:
return redirect()->back()->withInput();
或者使用Input class
:
return Redirect::back()->withInput(Input::all());
3. 如果只想显示特定字段的值,可以使用$request->only()
:
return redirect()->back()->withInput($request->only('name'));
详细示例和实际演示请参考https://devsenv.com/tutorials/how-to-redirect-back-in-laravel-with-form-input-and-many-possible-ways。
希望以上方法能在所有情况下都有效,谢谢。
问题的原因是用户希望在 Laravel 5 中重定向回表单页面时能够保留用户之前输入的值。解决方法是在表单的字段值上使用 `old()` 函数,并在控制器中使用 `withInput()` 方法。以下是解决问题的具体步骤:
首先,在表单的字段中使用 `old()` 函数来显示之前用户输入的值,例如:
然后,在控制器中,使用 `withInput()` 方法将输入数据闻闻闻闻闻闻闻闻闻闻闻闻闻闻:
if($validate->fails()) { return redirect("somepage")->withErrors($validate)->withInput(); }
对于 `select` 标签,可以使用 jQuery 实现类似功能。例如:
@if(isset(old('select'))) @endif
对于 Laravel 4.2,是否有类似的解决方案?
问题的原因是当用户填写表单提交后,如果发生错误需要重新返回到表单页面并且保留之前填写的内容。解决方法是使用Laravel框架中的`Redirect::back()->withInput(Input::all())`方法来重定向回表单页面并保留之前的输入内容。
另外,如果使用了Laravel的表单请求验证(Form Request Validation),该框架会自动使用上述方法来重定向回表单页面并显示错误信息和之前的输入内容。
在Laravel框架的`ValidatesRequests`类中可以找到类似的代码实现。
需要注意的是,上述方法并不能保留输入参数。如果需要保留输入参数,需要在表单中手动添加类似``的代码。