我有三个表:
用户模型:
public function realizations()
{
return $this->belongsToMany(Realization::class)->withPivot('status', 'payment');
}
实现模型:
public function users()
{
return $this->belongsToMany(User::class)->withTimestamps()->withPivot('status', 'payment');
}
记录用户只附加到一个实现,当我想显示他的实现数量时,我会这样:
$user->realizations->count()
我得到结果:1,但是当我这样做时:
$user->with('realizations')->count()
我得到13。
有什么问题?以及如何添加例如。关于这种关系在哪里?
答案 0 :(得分:2)
在第一种情况下,您将获得用户实现的数量,但在第二种情况下,您将获得用户数量。
要获得实现计数,您可以使用:
$user->realizations()->count()
或者如果您还需要实现,您可以使用:
$user->realizations->count()
请记住,您选择的是哪个区别。如果对于用户您有1百万个实现,第一个将对数据库执行查询以仅获得实现的计数,第二个将从数据库中获取所有实现,然后计算它们的数量。