Laravel“User.php第8行中的FatalErrorException:”

时间:2016-07-15 02:52:21

标签: php laravel authentication laravel-5 laravel-5.2

这是什么意思,我该如何解决?

FatalErrorException in User.php line 8:
Class App\User contains 6 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Auth\Authenticatable::getAuthIdentifierName, Illuminate\Contracts\Auth\Authenticatable::getAuthIdentifier, Illuminate\Contracts\Auth\Authenticatable::getAuthPassword, ...)

当我尝试登录我的laravel应用程序的仪表板时,就发生了这种情况。

1 个答案:

答案 0 :(得分:1)

这是关于接口实现的。如果要实现接口,则需要提及所声明的接口的所有方法。

  

照亮\合同\验证\可验证

界面定义:

interface Authenticatable {

    public function getAuthIdentifierName();
    public function getAuthIdentifier();
    public function getAuthPassword();
    public function getRememberToken();
    public function setRememberToken($value);
    public function getRememberTokenName();

}

因此,您的User类必须具有上述方法。

class User implements   Illuminate\Contracts\Auth\Authenticatable
{
    public function getAuthIdentifierName() {}
    public function getAuthIdentifier(){}
    public function getAuthPassword(){}
    public function getRememberToken(){}
    public function setRememberToken($value){}
    public function getRememberTokenName(){}

}

即使您不想在这些方法中编写代码,但是,仍然需要在用户类中编写空方法。

解决方案:

  1. 该界面主要用于 Auth 机制。如果您不想使用验证,只需从用户类中删除您的Authenticatable接口即可。

  2. 如果需要将其用于 Auth ,则需要实现所有接口方法并使其正确。更多信息请阅读以下网站: