【问题标题】:Auth::check() Returns False in Laravel Model but Returns True in ControllerAuth::check() 在 Laravel 模型中返回 False,但在控制器中返回 True
【发布时间】:2019-05-06 00:28:14
【问题描述】:

我有一个 Laravel 应用程序,我想在我的模型中获取 Auth::user。但是,当我在模型中执行 Auth::check() 时,它返回 false 而在控制器中它返回 true.

protected static function boot()
{
    parent::boot();

    if (Auth::check()){ //returns false
        // do my stuff
    }
}

【问题讨论】:

    标签: laravel laravel-5 eloquent laravel-authentication


    【解决方案1】:

    我很确定模型上的 boot 函数是在加载 AuthProvider 之前执行的。否则默认的身份验证提供者无法使用User 模型。

    因此,您无权访问boot 函数中的用户详细信息。

    【讨论】:

    • 你的回答似乎是合法的,但stackoverflow.com/questions/50564362/… 在这里他们正在做类似的事情
    • 是的,如果您在加载 Laravel 时手动调用的代码中使用该功能,该功能将正常工作。它只是在启动功能中不起作用。
    • 老实说,在模型函数中使用Auth::check() 听起来也像代码异味。例如,它甚至可能会阻止您在控制台命令中使用某些功能。
    猜你喜欢
    • 2015-03-03
    • 2018-09-08
    • 2019-04-25
    • 2018-01-07
    • 2016-06-08
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多