انتقل إلى محتوى الدرس

Counting Related Models Efficiently حساب عدد السجلات المرتبطة

بناء علاقة متعدد لمتعدد عبر belongsToMany وقراءة أعمدة الجدول الوسيط وإدارة الارتباطات بـ attach و sync واستعلام العلاقات بـ whereHas و withCount.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لعرض عدد التعليقات أو الوسوم بجانب كل مقال في قائمة العرض دون تحميل كائنات العلاقة نفسها، ألحق دالة withCount باستعلامك. يضيف Eloquent عمود استعلام فرعي باسم {relation}_count إلى كل نموذج مسترجع، مما يحافظ على انخفاض استهلاك الذاكرة وسرعة الصفحة.

  • العد بالاستعلام الفرعي (withCount): يضيف خاصية رقمية جاهزة مثل tags_count أو comments_count إلى كل نموذج أب في النتيجة.
  • إحصاء علاقات متعددة (Multiple Counts): يقبل مصفوفة بأسماء عدة علاقات لحساب أعدادها جميعاً في استعلام واحد.
  • العد المشروط (Filtered withCount): يسمح بتمرير دالة مغلقة لإحصاء السجلات المرتبطة التي تحقق شرطاً معيناً فقط.
PHP
$posts = Post::withCount(['tags', 'comments'])->get();

foreach ($posts as $post) {
    $totalTags = $post->tags_count;
}