Laravel Eloquent belongsToMany 只获取一个结果
Laravel Eloquent belongsToMany only fetches one result
我的 belongsToMany
函数只 return 一个元素,而它应该 return 所有元素。
这是我的 table 结构(简化):
users
- id
- ...
groups
- id
- ...
users_in_groups
- id
- user_id
- group_id
这是我的功能:
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',
);
}
还有两者
我的 belongsToMany
函数只 return 一个元素,而它应该 return 所有元素。
这是我的 table 结构(简化):
users
- id
- ...
groups
- id
- ...
users_in_groups
- id
- user_id
- group_id
这是我的功能:
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',
);
}
还有两者