【问题标题】:How to correctly redirect after doing POST in Laravel?在 Laravel 中进行 POST 后如何正确重定向?
【发布时间】:2017-02-02 01:42:22
【问题描述】:

我有多个带有 cmets 的路由,当我单击回复时,我会被重定向到可以发布评论回复的路由。如何正确存储我来的路线,然后在发布回复后重定向回它?

我考虑将 URL::previous 作为参数传递并将其存储到隐藏的输入中,但如果用户刷新页面,它就会变为空。另一种方法可能是存储在会话中,但是我不知道如何可靠地使其过期......

【问题讨论】:

  • 这样做 $request->session()->put('previous-url', '/user/demo'); $previous_url = Session::get('previous-url');返回重定向()->to($previous_url);

标签: laravel


【解决方案1】:

这样做,

会话中的第一个商店网址

$request->session()->put('previous-url', '/user/demo'); 

这样使用

$previous_url = Session::get('previous-url'); 
return redirect()->to($previous_url);

【讨论】:

    【解决方案2】:

    只要return redirect()->back();就可以了

    【讨论】:

      【解决方案3】:

      使用成功消息重定向回来

      return redirect()->back()->with('success', 'Data added successfully');
      

      【讨论】:

      • 尝试在session中存储url然后获取
      【解决方案4】:

      当用户访问页面时,当您有回复按钮时,将 url 存储在会话中。您不必过期,它会在用户访问带有回复按钮的下一页时自动更新。

      session(['last_url' => 'Request::fullUrl()']);
      

      别忘了使用命名空间

      Use Request;
      

      如果你真的想在用户重定向后从会话中丢弃值,你可以使用这个:

      return redirect()->url(Session::pull('last_url'));
      

      和命名空间

      Use Session;
      

      【讨论】:

        【解决方案5】:

        您可以在一个会话中保留 2-3-4-5 个 URL,而无需将其过期。您可以限制保留 URL 的数量。另外,请查看我对类似问题的回答here

        【讨论】:

          【解决方案6】:

          使用return redirect()->back();

          【讨论】:

          • 不,这会将用户返回到他写评论的页面。
          【解决方案7】:

          您可以使用return Redirect::back();return Redirect::to(URL::previous() . "#whatever");

          【讨论】:

          • 不,这会将用户返回到他写评论的页面。
          【解决方案8】:

          对上一个 URL 使用 return Redirect::back() 函数。

          【讨论】:

          • 不,这会将用户返回到他写评论的页面。
          猜你喜欢
          • 1970-01-01
          • 2018-07-30
          • 2020-02-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多