【问题标题】:Laravel Redirect Back IssuesLaravel 重定向返回问题
【发布时间】:2021-03-30 12:07:12
【问题描述】:

我正在使用 Laravel 8.0 创建一个 Web 应用程序。我有多个页面,只有在您登录帐户后才能看到。我已经设置好了,一旦你进入页面,它会使用一个控制器函数来返回视图,但在此之前它会检查你是否使用一个简单的 if 语句登录。如果您已登录,它会返回视图,否则会重定向到登录页面。我想要做到这一点,所以在他们登录后它会将他们重定向回他们之前尝试去的页面。我使用return redirect()->back(); 来执行此操作,但它也将登录页面返回给它们,因为它认为那是以前的位置。我使用单独的路由和控制器功能通过表单登录它们。如果有人可以提供帮助,我将不胜感激!

【问题讨论】:

  • 中间件最适合用于身份验证检查,laravel 附带 auth 中间件,如果有人试图访问需要事先登录且该用户未登录的页面,它将重定向到登录页面。另外你可以使用 Redirect 类的 intended 方法,该方法在重定向到登录页面之前重定向到预期的 URL。前往文档以更好地理解这些主题。

标签: php laravel


【解决方案1】:

您必须使用以下代码。在你的 login 函数中添加这个

Session::put('previousUrl',url()->previous());
$previous_url = Session::get('previousUrl');

登录认证成功后调用这个

return Session::get('previousUrl'); 

【讨论】:

    【解决方案2】:

    我更喜欢用这个

    redirect()->route('你的路由名称')

    因为在逻辑上,提交表单后,它会通过 POST Request

    转到另一条路径 /login

    所以当你使用这个时

    重定向()->返回()

    它通过 GET 请求 进入 /login,这是您的登录表单

    【讨论】:

      猜你喜欢
      • 2013-12-25
      • 2015-11-09
      • 2013-11-19
      • 2017-04-17
      • 2020-09-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多