2016-09-15 2 views
3

나는 Laravel 5.3을 사용 중이며 make:auth artisan 명령을 사용하여 로그인/등록 시스템을 비계합니다. 회사로 로그인하고 있으므로 Company이라는 테이블이 있습니다. User 테이블 대신 Company 테이블에서 이메일과 비밀번호를 가져 오도록 원래 SQL을 어떻게 변경합니까?Laravel 5.3 Auth에서 사용자 테이블 변경

나는 이미 제공 부분에서 config/auth.php 파일에 변경하려고하지만 'model' => App\Company::class,'model' => App\User::class,를 변경하면 로그인 시작하지만, 이메일과 비밀번호 입력이 완전히 잘못했다 상관없이합니다. 어떤 아이디어?

편집 :에서 Company 레지스터와 로그 후에는, Users을 초대 할 수있는 기능을 가지고 있으므로 원래의 User

+0

'email' => 'required|email|max:255|unique:users', 

에서

기본 사용자 테이블을 삭제하고 열심히되지 않습니다 사용자 정의를 만듭니다. –

+0

@Iftikharuddin 제발 편집 내 즐겨 찾기 –

답변

7

Laravel 5.3 인증 구현의 변화를가 남아있다. 나를 위해,이 방법은 그것을 해결 :

먼저 식별에 사용되는 기준을 충족하는 데이터베이스에 회사 테이블을 제공하십시오. 따라서 이름, 전자 메일, 암호 및 기억 열 (remember_token) 열이 필요합니다. 자세한 내용은 here을 참조하십시오.

config/auth.php에서 사용자 모델을 회사 클래스로 변경하십시오.

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\Company::class, 
    ], 

는 인증을 확장 응용 프로그램 폴더에 회사의 클래스를 만들기 때문에 사용 : 당사 클래스에서

use Illuminate\Foundation\Auth\User as Authenticatable; 

를 채울 수 숨겨진 필드를 정의합니다. RegisterController.php 변화 "를 사용 앱 \ 사용자"에서

class Company extends Authenticatable { 

protected $fillable = [ 
    'name', 'email', 'password', 
]; 

protected $hidden = [ 
    'password', 'remember_token', 
]; 
} 

use App\Company; 

이 회사와 RegisterController.php에검증을 함수를 작성 조정 :: 만들

protected function create(array $data) 
{ 
    return Company::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'name' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:companies', 
     'password' => 'required|min:6|confirmed', 
    ]); 
} 

'이메일'=> '필수 | 이메일 | 최대 : 255 | 고유 : 기업 '
(회사 모델의 테이블 이름은 회사입니다.)

희망이 있습니다.

1

registerContoller에서 유효성 검사를 변경하는 것을 잊지 마십시오.

'email' => 'required|email|max:255|unique:company',