laravel重定向参数不按预期工作?

时间:2015-05-13 04:57:23

标签: laravel laravel-4 laravel-5

我在laravel 5中使用资源路由进行路由。我使用了代码,如下所示:

return Redirect::route('tquoted-eqs.create',['tqid'=>$tqid]);

我希望使用$tid=6方法在命名路由tquoted-eqs.create上设置传递值GET。现在,网址应如下所示

http://localhost/project/tquoted-eqs/create?tqid=16

,而是显示

http://localhost/medisup/tquoted-eqs/create?tqid%5B0%5D%5Bid%5D=16

重定向后在地址栏上的

。我也尝试使用

redirect()->route('tquoted-eqs.create',['tqid'=>$tqid])

但这也产生了同样尴尬的URL。这可能是什么问题?

4 个答案:

答案 0 :(得分:1)

尝试使用

return Redirect::to(URL::to('tquoted-eqs.create', ['tqid'=>$tqid]));

答案 1 :(得分:1)

route()方法中的第二个参数是为路由参数保留的:https://github.com/laravel/framework/blob/5.0/src/Illuminate/Routing/Redirector.php#L153

尝试手动添加查询字符串,即

return redirect(route('tquoted-eqs.create').'?tqid='.$tqid);

答案 2 :(得分:0)

你为什么不试试这个:

return Redirect::route('tquoted-eqs.create', [$tqid]);

从parameters数组中删除了键['tqid' =>。希望它有所帮助。

答案 3 :(得分:0)

2017年3月,这似乎是使用Laravel 5.4的答案:

Route::get('/yourOldPath', function () {
    return redirect()->route('someOtherRouteName', \Illuminate\Support\Facades\Input::all());//Input::all() is like $_GET
});