2016-10-25 2 views
0

아래에 언급 된 열이있는 사용자, 전자 메일 및 전화 및 데이터베이스 테이블 사용자, 전자 메일 및 전화의 세 가지 모델이 있습니다.Laravel에서 Eloquent ORM을 사용하여 여러 테이블과의 일대일 관계

User: id, name 
    Emails: id, user_id, emails 
    Phones: id, user_id, phones 

은 지금은 내가 그것을 사용할 필요가 있음을 알고 싶어 많은 관계

public function profile(){ 
    $data = array(); 
    $data['emails'] = $this->hasMany('App\Email'); 
    $data['phones'] = $this->hasMany('App\Phone'); 
    return 
} 

에 설득력 ORM 하나를 사용하여 이메일 및 전화와 사용자의 관계를 만들기 위해 사용자 모델에 다음과 같은 기능을 사용하고 있습니다 hasMany() 메서드를 두 번 사용하거나이 작업을 수행하는 다른 더 좋은 방법이 있습니까?

답변

1

는 별도로 관계를 정의해야합니다

$user = User::with('emails')->with('phones')->find($userId); 

당신은 문서에 대한보고 here을 수행 할 수 있습니다 이것은 당신이 그런 사용자를 조회 할 수 있습니다

public function emails() 
{ 
    return $this->hasMany('App\Email'); 
} 

public function phones() 
{ 
    return $this->hasMany('App\Phone'); 
} 

.

+0

완벽하게 작동합니다. 고마워요 –

+1

@AhmarArshad 그냥 참고로,'with '를 두 번 호출 할 필요가 없습니다. 당신은'with ('emails', 'phones')'이되도록 결합 할 수 있습니다. –