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 个相关模型。