2016-07-22 4 views
0

4 가지 모델이 있습니다. 하지만 조용히하지 말고 내가 사용하기로되어있는 관계에 매달려있어. 모델 : County, Municipality, PostalZip. 테이블 및 기본 키가 각 모델에서 올바르게 설정되어 있습니다.Laravel eloquent relation 다중 모델

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

내가 추가 한 모델 Municipality에서 :

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

을 그리고 Postal 모델에서 내가 추가 한 :

County 모델에서 내가 추가 한

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

나는 이것을 시험했다 : County::findOrFail(1)->municipality; 그리고 나는 작동합니다. 그러나 특정 지자체에 속하는 우편물을 어떻게 얻을 수 있습니까?

내가 할 수 없다고 생각한 County::findOrFail(1)->municipality->postal; 나는 할 수 없다. 그러나 나는 아직 그 교수형이 없다는 것을 알 수있다.

어떻게하면됩니까? 미리 감사드립니다.

데이터베이스 구조 : 여기

County::findOrFail(1)->municipality; 

당신이 군의 municipality 필드가 아닌 실제 개체가 :

답변

0

http://pastebin.com/ts0D5juq 당신은 뭔가를 놓쳤다.

당신은 당신의 기능을 사용할 수 있습니다 : 나는 위 (기능)를 사용하려고 할 때 오류 얻을

County::findOrFail(1)->municipality()->postal(); 
+0

를 : 정의되지 않은 메서드를 분명히 \ 데이터베이스에 '전화 \ 쿼리 \ 빌더 :: 우편() ' – Kaizokupuffball

+0

다음을 시도하십시오 :'count :: findOrFail (1) -> 시정촌() -> first() -> postal() -> first();' – Vuldo

+0

고마워요! 속임수를 쓰는 것처럼 보입니다. 그래서 각 관계 메소드 다음에'first()'를 써야합니까? – Kaizokupuffball