Laravel - 将数据从一个函数传递到另一个路由的函数

Laravel - pass data from a function to another route's function

当前设置:

目前,用户可以搜索调用 post 路由。然后它 returns 基于对路由 search.results 的搜索的各种事物,它在 URL 中显示为 place/town

如何将 latlng 变量从 search 函数传递给 showResults 函数。我试过 ->with() 其中 returns 为 null,并将它们包含在 [$place, $town] 的当前数组中,但它们随后包含在 URL.

路线:

Route::post('search', 'Controller@search')->name('search');
Route::get('{place}/{town}', 'Controller@showResults')->name('search.results');

控制器:

搜索功能:

public function search(Request $request)
{
    $place =$request->get('name');
    $lat = $request->get('lat');
    $lng = $request->get('lng');

    return redirect()->route('search.results', [$place, $town]);
}

showResults 函数(此时为空):

public function showResults()
{
  // I want to use lat and lng here.
}

您需要使用Laravel Session

return redirect()
    ->route('search.results', [$place, $town])
    ->with('lng', $lng)
    ->with('lat', $lat);

并且在你的函数中

public function showResults(Request $request)
{
     $lat = $request->session()->get('lat');
     $lng = $request->session()->get('lng');
}