2017-01-18 3 views
2

私はデータベースradiusとテーブルradcheckを移行なしで持っています。テーブルradcheckをテーブル認証にしたいのですが、users.iではなく、config/authを 'user'からradcheckに変更してみてください。しかし、エラーどのようにして異種テーブルデフォルトの認証ラベールを作成する

radcheckradcheck.php

id, 
username, 
attribute, 
op, 
value=> as password, 
barcode 

コード:その後、

namespace App\Model\Management; 
use Illuminate\Database\Eloquent\Model; 

class Radcheck extends Model 
{ 

    protected $table = 'radcheck'; 
    protected $primarykey = 'id'; 
    protected $fillable = ['id','username','attribute','op','value','barcode']; 
    public $timestamps = false; 
    public function radusergroups(){ 
     return $this->hasMany('App\Model\Management\Radusergroup'); 
    } 
} 

とは、私はConfig/authでradcheckするユーザーからのconfig/AUTHを変更:

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\Model\Management\Radcheck::class, 
    ], 

エラーは次のようになります。

引数1がIlluminate \ Auth \ EloquentUserProvider :: validateCredentials()に渡されるのは、C:\ xampp \で指定されたApp \ Model \ Management \ RadcheckのインスタンスであるIlluminate \ Contracts \ Auth \ htdocsに\ E-アクセス\システム\ベンダー\ laravelの\フレームワークでは、\ SRC \を照らし\認証\ SessionGuard.phpライン上の385と

答えて

1

EloquentUserProviderのみ受け入れますIlluminate\Foundation\Auth\Userのインスタンスなので、Raを拡張する必要がありますdCheckはIlluminate\Foundation\Auth\User

によってちょうどあなたのコード

radcheck.php

namespace App\Model\Management; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 

class Radcheck extends Authenticatable 
{ 
    use Notifiable; 

    protected $table = 'radcheck'; 
    protected $primarykey = 'id'; 
    protected $fillable = ['id','username','attribute','op','value','barcode']; 
    public $timestamps = false; 
public function radusergroups(){ 
     return $this->hasMany('App\Model\Management\Radusergroup'); 
    } 
} 
+0

私はそれを得てエラーではない。しかし、私は試して、私はログインできないと表示 "これらの資格情報は私たちのレコードに一致しません。 私は "パスワード"として "値"フィールドを使用して、デフォルトの認証をフィールドパスワードから値に変更する方法は? –

+1

@muzamilindra直接パスワードフィールドを変更することはできません。しかし、あなたのモデルクラス 'public function getAuthPassword(){ return $ this-> password_column; } ' –

+0

お返事ありがとうございます。よし、分った。私は固定され、レジスタとログインからのエラーではありません。しかし、bcryptのencriptionでデフォルトのlaravelにログインすると、bcryptプロセスなしでログインしたいのですが、これはレジストリコントローラのbcryptプロセスを削除するためです。 –

1

定義されたモデルは、Authenticableを拡張する必要があります。

use Illuminate\Foundation\Auth\User as Authenticable; 

class Radcheck extends Authenticable 
+0

次私はそれを持っていないRadCheckでエラーを変更します。しかし、私は試して、私はログインできないと表示 "これらの資格情報は私たちのレコードに一致しません。私は "パスワード"として "値"フィールドを使用して、どのようにフィールドパスワードから値へのデフォルト認証を変更するのですか? –

関連する問題