【问题标题】:laravel: redirect->back() returns last page not base pagelaravel:redirect->back() 返回最后一页而不是基页
【发布时间】:2018-09-13 16:36:15
【问题描述】:

您好,感谢您的回复。 我在用户面板中有一个支付操作,支付成功后想重定向到面板,所以使用:

                return redirect()->back();

付款后。但如果用户在新页面中点击并打开面板中的 url,然后开始付款操作,将重定向到该页面而不是面板。

关键是有时面板 url 可能不同,我想要 laravel 检测提交请求表单的url

如何解决这个问题?

【问题讨论】:

  • 重定向到该网址(在本例中为您的面板网址)
  • 我想让 laravel 检测 url,因为在某些情况下面板 url 可能会偏离
  • 请举例说明您的面板网址可能是什么
  • 有时面板网址是 example.com/panel,有时是 /panel/page 或 /panel/edit?1 和 ....

标签: laravel redirect url-redirection


【解决方案1】:
 return redirect()->back();

用于你想去最后一页。

 return redirect()->route('login');

这里的登录名是您想要重定向的路由名称。关注网址了解更多详情。 https://laravel.com/docs/5.6/redirects

【讨论】:

  • 好的,有时面板 url 可能不同,我希望 laravel 检测 url 比请求表单提交
  • stackoverflow.com/questions/33896355/… 关注这个对你有帮助
  • 谢谢。但我无法从这篇文章中得到答案:如何获得提交的请求表单 url?这是解决它的关键
  • URL::current() 它将返回当前 url 之后你可以像这样添加条件 if (URL::previous() === URL::route('companies.index ')) { 返回重定向()->返回(); } else { return redirect()->route('someroute'); }
  • URL::current() 返回表单操作 url,它不是我想要的。
【解决方案2】:

您可以通过以下方式重定向您的路由,因为当您打开第二个选项卡上的链接时,redirect->back() 不起作用,因此您定义了一个静态路由并重定向。

   return Redirect::to('some/path');

【讨论】:

  • 我想让 laravel 检测 url,因为在某些情况下面板 url 可能会偏离
【解决方案3】:

我想在这种情况下,您可能希望使用当前页面的 URL 和适当的 URL 参数提交表单?

如果是这种情况,只需在视图中将以下内容添加到表单底部:

<input type="hidden" name="form_url" value="{{ url()->full() }}">

然后,在您的控制器中,您可以通过以下方式访问它:

$request->form_url;

这将使您能够在以后的逻辑中保留表单提交的 URL。

干杯

【讨论】:

    【解决方案4】:

    将用户重定向到他们的面板。

    return redirect()->route(“user_panel”, [“user” => Auth::user()];
    

    【讨论】:

      【解决方案5】:

      我最近遇到了这个问题,所以我把那个基本页面 url 放在控制器的 session 中,然后你可以从 session 中获取它并随时重定向到这个 url。

      【讨论】:

        猜你喜欢
        • 2018-04-30
        • 2021-11-24
        • 1970-01-01
        • 2016-06-11
        • 2016-03-26
        • 2019-07-20
        • 2012-07-22
        • 2014-10-07
        • 2015-03-04
        相关资源
        最近更新 更多