2015-03-06 3 views
0

Итак, у меня есть эти отношения:Чрезмерные запросы в Laravel 4.2. Что я делаю не так?

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; 
} 

Он получает точный подсчет, но это приводит к 7 запросов для моих 7 альбомов, несмотря на то, что я делаю жадную загрузку с имеет («Фотографии»). Я понимаю, что если я сделаю это правильно, нужно только один запрос. Что я делаю не так?

ответ

2

Вы должны использовать with не has для eager-loading.

has проверяет, имеет ли модель, по меньшей мере, X-ассоциированную связанную модель.

+0

Спасибо, я был под впечатлением, что сделал оба, но это не так. – Citizen

Смежные вопросы