gpt4 book ai didi

拉维尔 5.5 | old() 在 View 中为空,除非使用 $request->flash()

转载 作者:行者123 更新时间:2023-12-04 03:01:46 30 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,辅助函数 old() 总是在 Blade View 中返回 null,除非之前使用了 $request->flash()加载 View 。过去使用 laravel 时我从来没有这样做过。是否发生了某些变化,或者是否有我忘记设置/配置的内容。下面是一个简单的行为示例:

web.php

Route::get('/test', function(){

return view('testView');

});

Route::post('/test', function(Illuminate\Http\Request $request){

$request->flash(); // if uncommented old() works, if commented old() does not work
return view('testView');

});

testView.blade.php 中的表单

<form action="/test" method="POST">

{{csrf_field()}}

<input type="hidden" name="test001" value="001"/>
<input type="hidden" name="test002" value="002"/>

<div class="">
{{old('test001')}}
<br/>
{{old('test002')}}
</div>

<button type="submit">GO</button>
</form>

表单提交后没有$request->flash()

enter image description here

在使用 $request->flash() 提交表单后

enter image description here

编辑

认为这可能与对 post 和 get 方法使用单个路由名称有关,将表单更改为通过 get 提交,但问题仍然存在。例如:

web.php

Route::get('/test', function(function(Illuminate\Http\Request $request){

return view('testView');

});

testView.blade.php 中的表单

<form action="/test" method="GET">

<input type="hidden" name="test001" value="001"/>
<input type="hidden" name="test002" value="002"/>

<div class="">
{{old('test001')}}
<br/>
{{old('test002')}}
</div>

<button type="submit">GO</button>
</form>

最佳答案

使用 redirect back() 而不是直接在 post 方法中加载 View 。

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

您需要flash 请求数据以将旧输入 放入 session ,否则old() 将返回空结果。看官方doc在这里。

关于拉维尔 5.5 | old() 在 View 中为空,除非使用 $request->flash(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587418/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com