使用 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 5.8

使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数

laravel 4重定向到带有2个参数的路由

Laravel 5.2 - 在中间件请求中获取路由组名称

如何将没有参数的 Laravel 路由重定向到具有默认参数的控制器方法?

laravel路由 实现短连接生成及跳转(php 301重定向)