具有多个belongsToMany的Laravel模型返回null

时间:2016-10-01 16:03:45

标签: php laravel laravel-5

我有以下情况......

有些用户属于群组,有些游戏属于群组。

我尝试获取所有用户的组,但它返回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();
});

现在我尝试从所选用户中获取所有组

$user = User::find(1);

$userGroups = $user->groups;

因此,$ userGroups不是用户的所有组,而是NULL (group_user表中包含ID的条目)

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

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

答案 1 :(得分:0)

根据建议:Paul Spiegel

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

工作!谢谢:))