Php 将get参数添加到laravel';s重定向方法

Php 将get参数添加到laravel';s重定向方法,php,laravel,laravel-5,Php,Laravel,Laravel 5,我使用的是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将丢失。有没有办法向重定向方法添加参数?正如我看到的,这个函数不包括输入参数。该参数是可选的,因此可能不提供。也许

我使用的是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
将丢失。有没有办法向重定向方法添加参数?正如我看到的,这个函数不包括输入参数。该参数是可选的,因此可能不提供。也许有办法重写这个函数?还是其他解决办法?所有建议将不胜感激

更新

是否可以覆盖
重定向()
方法?我认为在我的情况下,这将是最好的解决方案

是的,您可以输入并传递参数,如下所示:

return redirect()->route('en.about', ['param' => 123]);
 return redirect('/en/about?param='.$param);

您必须在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])
});
如果使用
路由()
,则必须创建命名路由


希望这对您有所帮助

如果您不想添加路由名称,那么您可以使用控制器功能执行相同的操作

Route::get('/about/{param}', function () {
   return \Redirect::action('CONTROLLER@FUNCTION',['param'=>$param])
});
return redirect()->action('CONTROLLER@FUNCTION');
或者使用helper函数

Route::get('/about/{param}', function () {
   return \Redirect::action('CONTROLLER@FUNCTION',['param'=>$param])
});
return redirect()->action('CONTROLLER@FUNCTION');

就这样做吧:

return redirect()->route('en.about', ['param' => 123]);
 return redirect('/en/about?param='.$param);

在您的情况下,最好这样做:

return redirect(route("en.about")."?param=123");

如果失败,
方法url不存在
。也许是在老拉威尔家version@devnullψ看一下更新后的答案,我有一个拼写错误,谢谢,但在这种情况下,我必须首先创建命名路由,因为某些原因,它看不到参数。我像
/about/{param?},function($param=null)
那样添加了它,因为它是可选的,但是我无法获得值,我已经更新了答案。你有没有尝试过有参数传递和没有参数传递的路由?不确定它是否与版本有关,但我需要将参数传递给函数调用。ie
函数($param)
谢谢,但它同样需要命名路由。有没有不创建命名路由的方法?不确定,为什么不能创建命名路由?使用它们有很多好处。谢谢,但问题是我处理的项目大多只返回视图,它不调用controllers method,但对于重定向,您需要注册该路由