2016-10-01 2 views
0

다음과 같은 상황이 있습니다 ...여러 개의 belongsToMany가있는 Laravel 모델은 null을 반환합니다.

그룹에 속한 사용자가 있으며 그룹에 속한 게임이 있습니다.

모든 사용자의 그룹을 가져 오려고하지만 NULL을 반환합니다.

사용자 모델 :

public function groups(){ 
    return $this->belongsToMany('App\Group', 'group_user'); 
} 

그룹 모델 :

public function games(){ 
    return $this->belongsToMany('App\Game'); 
} 

public function users(){ 
    return $this->belongsToMany('App\User', 'group_user'); 
} 

GROUP_USER 테이블 이제

Schema::create('group_user', function (Blueprint $table) { 
    $table->increments('id'); 
    $table->integer('user_id'); 
    $table->integer('group_id'); 
    $table->timestamps(); 
}); 

내가 시도를 다음과 같이

내가 설정 한 관계를 가지고 모든 그룹을 얻으 라 fr 톰 선택한 사용자

$user = User::find(1); 

$userGroups = $user->groups; 

그래서 그 대신 $의 사용자 그룹이이 NULL의 사용자의 모든 그룹 인

+0

사용자가 belongsToMany 그룹 인 경우 hasMany 사용자가 아니어야합니다. – chiliNUT

+0

@chiliNUT 내가 틀렸다면 수정하십시오.하지만 사용자가 group_id를 가지고 있어야합니다. 사용자가 하나 이상의 그룹을 필요로하지 않도록하고 싶습니다. – ReduceTheRisk

+0

모든 것이 올바르게 보입니다. '$ user-> groups() -> get()'은 무엇을 반환합니까? –

답변

0

는 당신이 봤어 (ID를 포함하는 GROUP_USER 테이블에 항목이 있습니다)? 폴 스피겔

$user->groups()->get() 

근무 :에 의해 제안

return $this->belongsToMany('App\User', 'group_user','user_id', 'group_id'); 
+0

예, Paul Spiegel이 시도한'$ user-> groups() -> get()'을 제안했습니다. 그러나 당신의 제안에 감사드립니다! :) – ReduceTheRisk

관련 문제