$categories = Category::query()
->withCount('posts')
->get();
foreach ($categories as $category) {
echo $category->name.": ".$category->posts
->where('status', 'published')
->count()."\n";
}
در این تکه کد هم از withCount استفاده شده و هم داخل حلقه روی رابطه
posts فیلتر زده شده است که میتواند باعث N+1 Query و منطق اشتباه شود.در مدل
Category رابطه به این صورت تعریف شده است:
public function posts()
{
return $this->hasMany(Post::class);
}
چه چیزی باید در این کد اصلاح شود تا تعداد Postهای منتشرشده برای هر Category بهصورت بهینه و درست از دیتابیس گرفته شود؟
🔖 #Laravel #PHP #لاراول
👤 Developix
💎 Channel: @DevelopixLaravel
