2016-07-15 4 views
-1

これはどういう意味ですか、どうすれば修正できますか?Laravel "User.php 8行目のFatalErrorException:"

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アプリのための私のダッシュボードにログインしようとしていたとき、それは起こりました。

+3

あなたはUser.phpクラスを投稿することができますか?あなたのクラスが抽象クラスのメソッドのいくつかを実装していないようです。 – Daniel

答えて

1

これはインターフェイスの実装についてです。インタフェースを実装したい場合は、インタフェースが宣言したすべてのメソッドを記述する必要があります。

を照らし\契約

インタフェース定義認証\認証可能に\:だからあなたのUserクラスは、上記の方法を持っている必要があります

interface Authenticatable { 

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

} 

を。

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を使用しない場合は、認証クラスをUserクラスから削除するだけです。

  2. Authで使用する必要がある場合は、すべてのインターフェイスメソッドを実装して正しく取得する必要があります。詳しい情報は以下のWebサイトをご覧ください:

関連する問題