TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #174 808
در کد زیر می‌خواهیم لیست Categoryها را همراه با تعداد Postهای منتشرشده (status = 'published') بگیریم:


$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
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →