使用Laravel重定向到没有GET参数的路由

4

我有一些带有get参数的旧链接,我想将它们重定向到没有这些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个回答

6

在使用 redirect() 方法时,需要在其前面添加 return 使其生效:

public function welcome(Request $request)
{
    if($request->has('page_id')) {

        return redirect()->route('welcome');
    }

    return view('welcome');
}

希望这有所帮助!

是的,它确实有意义!它非常合理;) - Roderik
@Roderik - 如果您认为这个答案正确并且有帮助,请接受并点赞这个答案,因为它会激励我回答其他类似的问题,并帮助他人快速找到正确的答案! - Saumya Rastogi
我不能立即接受它,因为有一些延迟(可能与声誉有关)。 - Roderik
没问题,我只是通知你一下,顺便谢谢!:D - Saumya Rastogi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接