我第一次看到这个错误,并不知道该怎么做。 当我尝试在我的网站上注册新用户时,当我点击提交按钮时,它会显示:
User.php第11行中的FatalErrorException: 类App \ User包含6个抽象方法,因此必须声明为abstract或实现其余方法(Illuminate \ Contracts \ Auth \ Authenticatable :: getAuthIdentifierName,Illuminate \ Contracts \ Auth \ Authenticatable :: getAuthIdentifier,Illuminate \ Contracts \ Auth \ Authenticatable: :getAuthPassword,...)
用户模型:
<?php
namespace App;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
class User extends Model implements Authenticatable
{
protected $table = 'users';
protected $primaryKey = 'id';
}
它想说什么,我不明白。请有人帮帮我吗?
答案 0 :(得分:4)
您正在实施Illuminate\Contracts\Auth\Authenticatable
。这是界面,需要您的User
类具有一些必需的方法:
public function getAuthIdentifierName();
public function getAuthIdentifier();
public function getAuthPassword();
public function getRememberToken();
public function setRememberToken($value);
public function getRememberTokenName();
如果您尝试制作默认的User
模型,则应使用Illuminate\Foundation\Auth\User as Authenticatable
并将其扩展而不是Model
类。没有必要实现Authenticatable
interfase。
答案 1 :(得分:3)
您需要延长Illuminate\Foundation\Auth\User
而非Illuminate\Database\Eloquent\Model
,或在班级中使用Illuminate\Auth\Authenticatable
特征
<强>更新强>
您需要像这样扩展Illuminate \ Foundation \ Auth \ User
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
}
更新2
另外,请确保您的app文件夹中没有本机Laravel的App \ User模型,名为User.php