Laravel Eloquent belongsToMany 只获取一个结果

Laravel Eloquent belongsToMany only fetches one result

我的 belongsToMany 函数只 return 一个元素,而它应该 return 所有元素。

这是我的 table 结构(简化):

users

groups

users_in_groups

这是我的功能:


    public function getUsers(): BelongsToMany
    {
        return $this->belongsToMany(
            UserDao::class,
            'users_in_groups',  //table
            'id',               //foreignPivotKey
            "user_id"           //relatedPivotKey
        );
    }

我对结果调用了 getResults() 方法,即使这样它在 items 数组中也只有一个对象。

table我手动查的时候填的很好。我错过了什么?

看起来问题出在 $foreignPivotKey$relatedPivotKey

public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null,
                              $parentKey = null, $relatedKey = null, $relation = null)

所以你们的关系应该是

 public function getUsers(): BelongsToMany
    {
        return $this->belongsToMany(
            UserDao::class,
            'users_in_groups',
            "group_id" ,    
            'user_id',               
                   
        );
    }

还有两者