laravel 5.3 旧输入值始终为空

laravel 5.3 old input values always empty

see docs here about old input

Route::post('/search/all/', function (Request $request) {

 //...

  $products = $query->paginate(15);
  $data = ['products' => $products,
  'oldinput' => $request->all()];


  return view('inventory.search_products', $data);
});

在视图中:

这个有效:

<input type="text"  id="search_all" name="search_all" value="{{ $oldinput['search_all'] }}">

这总是空的:

<input type="text"  id="search_all" name="search_all"  value="{{ old('search_all') }}">

文档说你应该 flash() 然后调用 old() 方法。

flashing 将先前的请求存储在会话中。所以 old(search_all) 不起作用是有道理的

我会建议以下解决方案:

return view('inventory.search_products', $data)->withInput(\Input::all());

在 blade 中你也可以调用 \Input::old('search_all');

只需在您的 控制器中调用 flush 然后您就可以在 blade[= 中使用 old() 辅助函数21=].

 public function YourController(Request $request){
     $request->flash();
 return view('yourblade');
}

在blade文件中:-

<input id="lng" name="lng" value="{{old('lng')}}"  type="hidden">