【问题标题】:How could i keep my $_GET params on laravel Redirect?我怎样才能将我的 $_GET 参数保留在 laravel Redirect 上?
【发布时间】:2016-12-16 10:55:23
【问题描述】:

我尝试使用重定向,

  return redirect('/customer/' . $cust_id)->with('page',2);

我的路线是,

 /customer/{id}

在客户页面中,我使用分页。

所以我需要重定向到相同的页面。

但是我怎么能用“redirect()”传递我的get参数

实际网址,

 http://domain.com/customer/2?page=3   // page=>3

我需要将控件发送回同一页面。

有什么解决办法吗?

或者这是正确的方法吗?

【问题讨论】:

    标签: php laravel redirect laravel-5


    【解决方案1】:

    您应该检查它是否已设置,否则不要使用该项目重定向。

    您的代码将是:

    return redirect()->back();
    

    或者通过通知你可以这样做:

    return redirect()->back()->with('message', 'This is my message!');
    

    【讨论】:

    • 不,我无法获得我的“页面”参数,它只是重定向到初始页面。 $_GET 参数在哪里刷新!
    • 因此你可以使用redirect()->back(),这样就可以了。我更新了我的代码!
    • 在 GET 请求中使用 redirect()->back() 是不好的做法。用户可以刷新并且按钮将无用,仅在 POST 请求中使用 redirect()->back()...(更新/存储后)
    • 是的,我在 POST 请求中使用它。
    【解决方案2】:

    如果您有多个 GET 变量,每个重定向可能不同,则原生 PHP 函数 http_build_query() 可能会很方便。

    // check for GET variables and build query string
    $get = count($_GET) ? ('?' . http_build_query($_GET)) : '';
    
    // redirect
    return redirect('/customer/'.$cust_id.$get));
    

    我不使用 Laravel,所以可能有更好的方法可以做到这一点,但无论如何它似乎是一个干净的解决方案。

    【讨论】:

    • 谢谢!但我无法接收数据。
    • @Shankar Thiyagaraajan 你的意思是你不能访问你的GET 变量?
    • 是的...我无法收到我的 $_GET 参数,不知道为什么!!
    【解决方案3】:

    可以通过request()获取参数

    $page = request->has('page') ? '?page='.request()->page : '';
    
    return redirect('/customer/'.$cust_id.$page);
    

    但是如果你需要重定向回上一页,使用这个:

    return redirect()->back();
    

    【讨论】:

    • 直接返回列表页,
    • OK,但是$_GET参数的值没有被获取,但是URL变成了“domain/customer/2?page=”。
    • 这很奇怪。尝试改用request()->page。
    • 你写了request->page,修复它。
    • 小心,引用者可能会被 JS 覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 2016-10-08
    • 1970-01-01
    • 2014-12-04
    • 2011-06-22
    • 2014-03-21
    • 2018-07-09
    相关资源
    最近更新 更多