من میخوام بدونم آیا میشه برای این دوتا متد که در این بخش نوشتیمشون، از eager loading و یا lazy loading استفاده کرد تا تعداد کوئری هامون پایینتر بیاد؟ و اگه میشه، به چه شکل؟
متدها:
public function getLikesCountAttribute()
{
return $this->likes()->where('vote' , 1)->count();
}
public function getDislikesCountAttribute()
{
return $this->likes()->where('vote', -1)->count();
}
کوئریهای تکرار شونده:
select count(*) as aggregate from `likes` where `likes`.`likeable_type` = 'App\\Models\\Comment' and `likes`.`likeable_id` = 47 and `likes`.`likeable_id` is not null and `vote` = 1
و
select count(*) as aggregate from `likes` where `likes`.`likeable_type` = 'App\\Models\\Video' and `likes`.`likeable_id` = 34 and `likes`.`likeable_id` is not null and `vote` = 1