Laravel在null上调用成员函数isActivated()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel在null上调用成员函数isActivated()相关的知识,希望对你有一定的参考价值。

首先感谢阅读这篇文章!

我对Laravel很新,我在validateLogin上压倒了LoginController方法。我在isActivated下调用用户模型中的appUser方法,但我得到以下错误,我甚至硬编码它返回true进行测试。我确定我做了一些蠢事,有什么建议吗?

Call to a member function isActivated() on null

应用程序 HTTP 控制器验证 LoginController.php

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

应用程序 user.php的

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

你在isActivated()上调用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.
}

以上是关于Laravel在null上调用成员函数isActivated()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 护照抛出错误:“在 null 上调用成员函数 createToken()”

laravel 8 中的文件上传 - 在 null 上调用成员函数 getClientOriginalName() 时出错

为啥我不能在 Laravel 上正确映射嵌套查询? “在 null 上调用成员函数 map()”显示为错误

Laravel 5 单元测试 - 在 null 上调用成员函数 connection()

Laravel:更新数据时在 null 上调用成员函数 getClientOriginalName()

Laravel在null上调用成员函数isActivated()