【问题标题】:How to redirect to two step backwards in Laravel?如何在 Laravel 中重定向到倒退两步?
【发布时间】:2018-06-01 12:59:32
【问题描述】:

例如 在控制器中我有一个存储功能

public function store(Request $request)
{
 ....
 return redirect()->back();
 }

store函数被调用后,由于return redirect()->back()进入create.blade.php视图。 但我想重定向到更进一步的倒退。 我怎样才能做到这一点 ?谢谢你

【问题讨论】:

  • 如果您知道要发送它的地方的 url,那么只需将其发送/重定向到该 url。
  • 你不能重复两次,因为 laravel 使用 HTTP_REFERER 来查找最近的 url。

标签: php html laravel


【解决方案1】:

您可以使用 Session 系统将所有页面的 URL 保存回来。检查以下步骤以重定向 2 或 3 个反向 URL 重定向。

1) 首先,您可以从会话系统变量中获取所有 URL。

$urls = array();
  if(Session::has('links')){
     $urls[] = Session::get('links')
  }

2) 然后获取当前页面的url。

  $currentUrl = $_SERVER['REQUEST_URI'];

3) 将当前 url 映射到其他所有 url。

array_unshift($urls, $currentUrl);
  Session::flash('urls', $urls);

4) 从会话系统中获取所有链接,如下所示

  $links = Session::get('urls'); 

5) 然后您可以重定向到特定页面。

   return redirect($links[2]); 

【讨论】:

  • 老兄,你刚刚复制了代码from my answer(参见version of the answer before the last edit)。我不介意你是否会为这个想法添加一些很酷的东西。我的意思是像一个更好的解决方案。但是为什么只是复制它呢?顺便说一句,我刚刚重构了代码,使其更现代、更优雅。
  • $urls = array(); if(Session::has('links')){ $urls[] = Session::get('links'); } ;不见了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 2021-01-15
  • 1970-01-01
  • 2021-09-25
  • 2021-10-23
  • 2015-06-09
  • 1970-01-01
相关资源
最近更新 更多