我使用laravel 5.6
我有GET
参数,我想传递给重定向功能。
Route::get('/about', function () {
//I want to add param to this redirect function
return redirect('/en/about');
});
如果路线在重定向后显示为/about?param=123
param
将丢失。有没有办法为重定向方法添加参数?因为我看到这个功能不包含输入参数。参数是可选的,因此可能不提供。也许有超越这个功能的方法?或其他一些解决方案?所有建议将不胜感激
更新
可以覆盖redirect()
方法吗?我认为在我的情况下,这将是最好的解决方案
答案 0 :(得分:3)
您必须在URL中获取参数并将其传递给数组中的重定向方法
Route::get('/about/{param}', function () {
return \Redirect::route('/en/about', ['param'=>$param])
});
无需使用命名路径
Route::get('/about/{param}', function () {
return redirect('/en/about', ['param'=>$param])
});
对于可选参数
Route::get('/about/{param?}', function ($param = 'my param') {
return redirect('/en/about', ['param'=>$param])
});
答案 1 :(得分:1)
是的,您可以redirect to named routes并传递参数,如下所示:
return redirect()->route('en.about', ['param' => 123]);
答案 2 :(得分:1)
Route::get('/about', function () {
//I want to add param to this redirect function
return redirect()->to(url('/en/about',['param' => 'Pram vakue', 'param2' => $param]));
});
如果使用route()
,则必须创建命名路线。
希望这有帮助
答案 3 :(得分:1)
如果您不想添加路线名称,那么您可以使用控制器功能
ONE_MINUS_SRC_COLOR
OR与辅助函数
Route::get('/about/{param}', function () {
return \Redirect::action('CONTROLLER@FUNCTION',['param'=>$param])
});
答案 4 :(得分:1)
做这样的事情:
return redirect('/en/about?param='.$param);
答案 5 :(得分:0)
这种情况下最好这样做:
return redirect(route("en.about")."?param=123");