【问题标题】:Laravel "FatalErrorException in User.php line 8:"Laravel “User.php 第 8 行中的 FatalErrorException:”
【发布时间】:2016-07-15 02:52:21
【问题描述】:

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

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 应用程序的仪表板时发生了这种情况。

【问题讨论】:

  • 你能发布 User.php 类吗?看起来你的类没有实现抽象类的一些方法。

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


【解决方案1】:

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

Illuminate\Contracts\Auth\Authenticatable

接口定义:

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机制的接口。如果您不想使用 Auth,只需从 User 类中删除 Authenticatable 接口即可。

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

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多