【发布时间】:2020-09-07 01:39:36
【问题描述】:
我有 2 个模型 User 和 Publisher,通过多对多关系链接。当我尝试遍历用户拥有的每个发布者并将 ID 提取到数组时,循环运行正确的次数(在本例中为 5 次),但查询返回每个发布者 ID,而不仅仅是关系中的那些。
用户模型有
public function publishers()
{
return $this->belongsToMany('App\Publisher')->withTimestamps();
}
和发布者模型有
public function users()
{
return $this->belongsToMany('App\User')->withTimestamps();
}
我的 foreach 循环是这样的
foreach ($user->publishers as $uPublisher) {
$userPublisherIds[] = $uPublisher->pluck('id')->toarray();
}
我知道我可以使用 array_merge 来构建数组,我现在只是使用 [] 来查看循环迭代了多少次。
我不明白为什么 $user->publishers 给了我预期的过滤集合,但 $uPublishers 返回每个发布者 ID。很奇怪。
有人能说明为什么会这样吗?
【问题讨论】: