【问题标题】:Redirecting in Laravel在 Laravel 中重定向
【发布时间】:2018-05-14 03:01:17
【问题描述】:

作为我最终研究项目的一部分,我在 Laravel 为当地慈善机构制作了一个 CMS。我必须在早上提交它,但我有一个小问题,我想不通。

我有帖子和 cmets、用户和管理员。任何经过身份验证的用户类型都可以对帖子发表评论。我在单个帖子页面上有一个用于登录的模式,这只是一个简单的@if 语句,它替换了按钮。

如果我以管理员身份登录,我会被重定向到管理面板,这正是我想要的。如果我以用户身份登录,我将被重定向到家;不好。我只是想使用 return back()->withInput 重定向用户我似乎找不到处理用户重定向的正确类。我已经在登录控制器和 redirectIfAuthenticated 中间件中尝试过,但都不起作用。

我累了,现在是凌晨 4 点,我可能正在查找错误的文件。一点帮助会很好,谢谢。

【问题讨论】:

  • 您是否尝试过获取 back() 对象的 UrlGenerator 以查看是否可以满足您的要求?
  • 我刚刚设法修复它。事实证明,我不能在 redirectTo() 函数中使用辅助方法。所以我不得不用以下方式请求网址:return url()->previous();至少可以将用户带回原来的位置。它显然不会保存旧的输入,但我现在可以禁用输入框。

标签: php laravel-5.6


【解决方案1】:

最简单的解决方案是在您的AuthController 中定义一个authenticated 方法并将逻辑放在那里:

   protected function authenticated($request, $user)
    {
        if($user->role === 'admin') {
            return redirect()->intended('/admin_path_here');
        }

        return redirect()->intended('/path_for_normal_user');
    }

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2014-11-18
    • 1970-01-01
    • 2021-07-22
    • 2016-09-21
    • 2016-02-16
    • 2021-10-23
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多