whi*_*hoa 3 laravel laravel-5.5
我遇到了一个奇怪的问题,辅助函数old()总是在刀片视图中返回 null,除非$request->flash()在加载视图之前使用。过去我在使用 laravel 时从来没有这样做过。有什么改变或者有什么我忘记设置/配置的东西。下面是一个简单的行为示例:
网页.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');
});
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
表单提交后没有 $request->flash()
表单提交后 $request->flash()
编辑
认为这可能与对 post 和 get 方法使用单个路由名称有关,因此将表单更改为通过 get 提交,并且问题仍然存在。例如:
网页.php
Route::get('/test', function(function(Illuminate\Http\Request $request){
return view('testView');
});
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
使用redirect back()而不是直接在post方法中加载视图。
return redirect()->back()->withInput();
Run Code Online (Sandbox Code Playgroud)
您需要flash请求数据放入old input会话,否则old()将返回空结果。在此处查看官方文档。
| 归档时间: |
|
| 查看次数: |
2242 次 |
| 最近记录: |