2017-05-11 1 views
1

내 프로젝트에 두 개의 관계 모델이 있습니다. CarPool & 라이드 & 사용자. 사용자가 "내 차"페이지, 모든 탐을 표시하기 위해 입력 내 차 모델 내 예상 시나리오에서관계가 laravel eloquent에서 작동하지 않습니다.

public $with=['user','carpool']; 

public function user(){ 
    return $this->belongsTo('App\User'); 
} 

public function carpool(){ 
    return $this->belongsTo('App\CarPool'); 
} 

,에서 내 카풀 모델

public $with=['user','ride']; 

public function user(){ 
    return $this->belongsTo('App\User'); 
} 

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

에서

은 사용자에 의해했다. (예를 들어 사용자는 3 번 타기를했습니다.) 그래서 3 열의 목록이 있습니다. 각 탑승 열에는 카풀 정보 및 운전자 정보가 있습니다.

내 컨트롤러에서 나는 이것을 타고 사용자에게 속하게합니다.

$user_id=Auth::user()->id; 

    $rides= Ride::where('user_id',$user_id)->get(); 

그러나 결과를 확인한 후에. null이 있었기 때문에 카풀 관계가 연결되지 않은 것처럼 보입니다. 내 관계가 맞지 않니? 데이터베이스 car_pools 테이블에

enter image description here

내 테이블 enter image description here

놀이기구의 표는 카풀 ID 관련 한 rides 테이블에 car_pool_id 필드가없는 것 정말 보이는 enter image description here

+1

두 테이블 모두에 대해 테이블 ​​구조를 게시 할 수 있습니까? – Ian

+0

'라이드'가 '카풀'과 관련이 있습니까? 'dd ($ rides [0] -> carpool);을 시도해주세요. –

+0

@lan 내 테이블을 업데이트했습니다. – Eann

답변

0

그 안에. 이 필드를 가지고 있지만, 이름이 다른 경우

는 관계 외래 키 이름을 추가 :

public function carpool() 
{ 
    return $this->belongsTo('App\CarPool', 'custom_column_name'); 
} 
+0

예 타기 테이블에 car_pool_id가 있습니다. 내 데이터베이스 테이블을 업로드했는지 확인하십시오. – Eann

1

문제를 해결할 다른 방법으로 작업 할 수 있습니다 아직도 독수리로드하지만,하지만. 카풀을 제거하여 내 타기 모델을 변경했습니다. 그래서 지금

public $with=['user']; 

그럼 난 내 기대하지만, 적어도 작업으로 {{ $ride->carpool->title }} 동일하지 않음으로써 데이터를 호출합니다.

0

관계 매핑 기능에서 외래 키와 기본 키를 모두 부여한 후에 시도하십시오. 때때로 외래 키를 제공하는 경우 모델은 기본 키로 다른 모델에 연결을 시도합니다. 관계에 기본 키를 사용하지 않는 경우 관계 함수에서 다른 키를 지정하십시오.

관련 문제