使用 Laravel 重定向到路由而不获取参数
Posted
技术标签:
【中文标题】使用 Laravel 重定向到路由而不获取参数【英文标题】:Redirect to route without get params with Laravel 【发布时间】:2017-04-01 04:49:01 【问题描述】:我有一些带有 get 参数的旧 url,我想在没有这些 get 参数的情况下重定向到路由。
在我的 web.php 中我有:
Route::get('/', ['as' => 'welcome', 'uses' => 'PageController@welcome']);
http://example.com/?page_id=5 等 URL 应重定向 (302) 到 http://example.com/。
在控制器中我尝试了以下操作:
public function welcome(Request $request)
if($request->has('page_id'))
redirect()->to('welcome', 302);
return view('welcome');
它到达重定向,但 url 中仍然包含 ?page_id=5。类似的东西:
redirect()->to('welcome', 302)->with('page_id', null);
也没有区别。 Laravel 5.3 中使用参数重定向页面的最佳方法是什么?到一个不带参数的?
【问题讨论】:
【参考方案1】:您应该在redirect()
方法前面使用return
以使其工作:
public function welcome(Request $request)
if($request->has('page_id'))
return redirect()->route('welcome');
return view('welcome');
希望这会有所帮助!
【讨论】:
是的!这很有意义;) @Roderik - 如果您认为此答案正确且有帮助,请接受并投票赞成此答案,因为它激励我回答此类其他问题并帮助其他人快速找到正确答案! 我不能立即接受它,它有延迟(可能与声誉有关)。 没问题,我刚刚通知你,顺便谢谢! :D以上是关于使用 Laravel 重定向到路由而不获取参数的主要内容,如果未能解决你的问题,请参考以下文章
使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数