Laravel中如何带着表单输入内容返回view1页面?
解决办法
方案一:直接从Session取数据填充表单
你已经把提交的数据存在Session的data键里了,直接在view1的表单字段中使用这个Session值即可,同时还能兼容验证失败时的old()场景:
<input type="text" name="name" value="{{ session('data.name', old('name')) }}">
view2里的返回链接正常编写就行:
← <a href="{{ route('view1') }}">返回</a>
方案二:闪存输入数据用old()填充
如果想继续依赖old()方法填充表单,只需在跳转到view2时把输入数据闪存起来,修改控制器的post_create方法:
public function post_create(CreateRequest $request) { $request->session()->put('data', $request->all()); // 闪存输入数据,让old()可以读取到 return redirect()->route('view2')->withInput(); }
这样从view2点击返回链接回到view1时,old()就能自动填充表单内容,view2的链接写法不变:
← <a href="{{ route('view1') }}">返回</a>
原代码报错原因
route('view1')返回的是纯字符串格式的URL,而withInput()是Laravel中RedirectResponse对象的专属方法,只有在生成重定向响应时才能调用,直接在路由助手后调用自然会报错。
内容的提问来源于stack exchange,提问作者JanBoehmer
相关产品推荐
相关产品推荐

