【问题标题】:Redirect to route without get params with Laravel使用 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 中使用参数重定向页面的最佳方法是什么?到一个不带参数的?

【问题讨论】:

    标签: php laravel get routing 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
    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2016-06-07
    • 2017-06-01
    • 2019-10-05
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多