2017-12-24 12 views
0

저는 조금 실망했습니다 ... belongsTo와 테이블을 조인하려고하는데 문제가 있습니다. 외래 키, 사람들이 테이블을 참조는 makeup2 있습니다 makeup2 ...동일한 테이블에 여러 belongsTo가 있습니다. Laravel

광대, makeup1 - 일 - - 광대 - makeup1 자

ID :

나는이 테이블을 가지고있다.

인민 테이블 :

아이디 - 이름 - FIRSTNAME ... 내 시스템에서

광대, makeup1 및 makeup2의 값이 사람 테이블의 ID입니다. 좋습니다.

문제는 내가 광대, makeup1 및 makeup2의 이름을 표시하려고 할 때입니다. 내가 보여 내보기에

public function people() 
{ 
    return $this->belongsTo(People::class, 'clown', 'id'); 
} 
public function makeup1() 
{ 
    return $this->belongsTo(People::class, 'makeup1', 'id'); 
} 
public function makeup2() 
{ 
    return $this->belongsTo(People::class, 'makeup2', 'id'); 
} 

:

나는 오류

나는 이런 나의 관계를 정의 내 모델에서 비 객체

의 속성을 얻기 위해 시도해야 이 광대는 다음과 같습니다.

{{ $defaut->people->name }} 

작동하지만 다른 작동하지 않습니다.

{{ $defaut-> makeup1->name }} 
{{ $defaut-> makeup2->name }} 

->하지 작동 및 비 개체의 속성을 얻으려고 노력

보여

이해가 안 ....

PS : 컨트롤러에서의 내 요청은

$defaults = Default::with('people')->with('makeup1')->with('makeup2')->get(); 
입니다.

그리고이 하나의 작품, 나는 var_dump()에서 관계를 참조하십시오.

<pre>Collection {#654 ▼ 
#items: array:1 [▼ 
0 => Default {#619 ▼ 
    #table: "defaults" 
    #fillable: array:8 [▶] 
    #connection: "mysql" 
    #primaryKey: "id" 
    #keyType: "int" 
    +incrementing: true 
    #with: [] 
    #withCount: [] 
    #perPage: 15 
    +exists: true 
    +wasRecentlyCreated: false 
    #attributes: array:11 [▶] 
    #original: array:11 [▶] 
    #changes: [] 
    #casts: [] 
    #dates: [] 
    #dateFormat: null 
    #appends: [] 
    #dispatchesEvents: [] 
    #observables: [] 
    #relations: array:3 [▼ 
    "people" => People {#655 ▶} 
    "makeup1" => People {#687 ▶} 
    "makeup2" => People {#719 ▼ 
     #fillable: array:7 [▶] 
     #connection: "mysql" 
     #table: null 
     #primaryKey: "id" 
     #keyType: "int" 
     +incrementing: true 
     #with: [] 
     #withCount: [] 
     #perPage: 15 
     +exists: true 
     +wasRecentlyCreated: false 
     #attributes: array:10 [▶] 
     #original: array:10 [▶] 
     #changes: [] 
     #casts: [] 
     #dates: [] 
     #dateFormat: null 
     #appends: [] 
     #dispatchesEvents: [] 
     #observables: [] 
     #relations: [] 
     #touches: [] 
     +timestamps: true 
     #hidden: [] 
     #visible: [] 
     #guarded: array:1 [▶] 
    } 
    ] 
    #touches: [] 
    +timestamps: true 
    #hidden: [] 
    #visible: [] 
    #guarded: array:1 [▶] 
} 
] 
} 
</pre> 
Thank you for your advices 
+0

'@dd ($ 기본값)의 출력을 보여 주시기 바랍니다 감사합니다 내가 쓸 필요가 관계를 표시합니다. –

+0

첫 번째 게시물 하단의 dd ($ default)입니다. – yagrasdemonde

+0

컨트롤러에서 실행되는'dd ($ defaults)'와 비슷합니다. 다른 작업에서 얻은 데이터가 아닌보기의 동일한 데이터로 작업하고 있는지 확인하십시오. –

답변

0

솔루션을 찾았습니다! '보기에 당신이 이름을 표시하려는 직전에

{{ $defaut->makeup1()->first()->name }} 

당신이