Laravel - 将数据从一个函数传递到另一个路由的函数
Laravel - pass data from a function to another route's function
当前设置:
目前,用户可以搜索调用 post 路由。然后它 returns 基于对路由 search.results
的搜索的各种事物,它在 URL 中显示为 place/town
。
如何将 lat
和 lng
变量从 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');
}
当前设置:
目前,用户可以搜索调用 post 路由。然后它 returns 基于对路由 search.results
的搜索的各种事物,它在 URL 中显示为 place/town
。
如何将 lat
和 lng
变量从 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');
}