2016-10-01 9 views
0

私は次のような状況にあります...複数のbelongsToManyを持つLaravelモデルがNULLを返す

グループに属するユーザーがあり、グループに属するゲームがあります。

すべてのユーザーのグループを取得しようとしましたが、NULLを返します。

私は次のような関係がセットアップされている:

Userモデル:

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 OM選択したユーザー

$user = User::find(1); 

$userGroups = $user->groups; 

ので、代わりに$のユーザグループは、それがNULLのユーザーのすべてのグループであること

+0

ユーザーがbelongsToManyグループよりもグループhasManyユーザーではないはずですか? – chiliNUT

+0

@chiliNUT私が間違っていると私を訂正しますが、ユーザに複数のグループが必要であることを避けたいgro​​up_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

関連する問題