2017-01-18 1 views
2

데이터베이스 radius에 테이블 radcheck을 마이 그 레이션하지 않았습니다. 테이블 radcheck을 테이블 인증으로 사용하려면 users.i가 아니라 config/auth을 'user'에서 radcheck으로 변경하십시오. 하지만 오류다른 테이블을 사용하는 인증 라라 블을 기본으로 설정하는 방법

radcheck : radcheck.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 사용자의 설정/인증을 변경

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

오류는 다음과 같습니다 :

전달 된 인수 1은 Illuminate \ Auth \ EloquentUserProvider :: validateCredentials()가 C : \ xampp \로 호출 된 App \ Model \ Management \ Radcheck 인스턴스의 Illuminate \ Contracts \ Auth \ Authenticatable 인스턴스 여야합니다. htdocs를 \ 전자 액세스 \ 시스템 \ 업체 \ 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에 의해 오류를 변경합니다. 하지만 나는 로그인 할 수없고 "이 자격 증명이 우리 기록과 일치하지 않습니다."라고 표시합니다. "값"필드를 "비밀번호"로 사용하여 기본 비밀번호를 필드 비밀번호에서 값으로 변경하는 방법은 무엇입니까? –