Laravel 4.2 中的查询过多。我究竟做错了什么?
Excessive queries in Laravel 4.2. What am I doing wrong?
所以,我有这样的关系:
public function publishedAlbums()
{
return $this->hasMany('Album')->where('is_published', true)->has('photos');
}
public function getPhotoCountAttribute()
{
$count = 0;
foreach ($this->publishedAlbums as $album)
{
$count += $album->photos->count();
}
return $count;
}
虽然我使用 has('Photos') 进行预加载,但它得到了一个准确的计数,但它对我的 7 张专辑产生了 7 个查询。我的理解是,如果我做对了,只需要一个查询。我做错了什么?
你应该使用 with
not has
for eager-loading.
has
检查以确保一个模型至少关联了 X 个相关模型。
所以,我有这样的关系:
public function publishedAlbums()
{
return $this->hasMany('Album')->where('is_published', true)->has('photos');
}
public function getPhotoCountAttribute()
{
$count = 0;
foreach ($this->publishedAlbums as $album)
{
$count += $album->photos->count();
}
return $count;
}
虽然我使用 has('Photos') 进行预加载,但它得到了一个准确的计数,但它对我的 7 张专辑产生了 7 个查询。我的理解是,如果我做对了,只需要一个查询。我做错了什么?
你应该使用 with
not has
for eager-loading.
has
检查以确保一个模型至少关联了 X 个相关模型。