В моей модели я добавляю SUM-вычисление отношения, которое вызывает 80 запросов для атрибутов projectHours.
Если я не добавляю projectHours, я получаю 6 запросов.
Я считаю, что это проблема N + 1 в модели для отношений.
Есть ли какой-нибудь способ использовать стремительную загрузку в модели, чтобы уменьшить мои запросы?
Или я должен пойти по другому пути? Мне было предложено преобразовать это в Resource и обернуть запрос eager-load в область видимости, чтобы вы могли сделать это в своем контроллере, но я подумал, что ресурсы были больше для конечных точек API.
Спасибо за помощь.
class Project extends Model
{
protected $appends = ['projectHours'];
public function jobs()
{
return $this->hasMany('App\JobItem', 'project_id', 'id');
}
public function getProjectHoursAttribute()
{
return $this->jobs()->sum('hours');
}
}