Laravel对成员函数的调用是null上的Active()



首先感谢您阅读这篇文章!

我对 Laravel 很陌生,我正在覆盖LoginController中的validateLogin方法.我正在调用 appUser 下用户模型中的 isActivated 方法,但我收到以下错误,我什至已将其硬编码为返回 true 进行测试。我确定我在做傻事,有什么建议吗?

Call to a member function isActivated() on null

app\Http\Controllers\Auth\LoginController.php

protected function validateLogin(Request $request)
{
  //if(User::isActivated()->isActivated() == false)
  if (Auth::user()->isActivated())
  {
      return redirect('/contact');
  }

应用\用户.php

public function isActivated()
{
    //return $this->confirmed ;
    return true;
}

您在该上下文中调用isActivated() on null,因为没有经过身份验证的用户。要使代码正常工作,您需要首先检查用户是否已通过身份验证,然后检查他们是否已激活。

if (Auth::user() && Auth::user()->isActivated()) {
    // Safely check that a user is authenticated and activated.
}

如果您遵循本指南:https://laravel.com/docs/5.5/authentication#authenticating-users

您可以使用Auth::attempt方法。

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
    // The user is active, not suspended, and exists.
}

相关内容

  • 没有找到相关文章

最新更新