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

Many to Many Pivot Tables علاقة متعدد لمتعدد والجدول الوسيط

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

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

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

تربط علاقة متعدد لمتعدد نموذجين معاً عبر جدول ربط وسيط يُعرف بجدول Pivot، مثل ربط المقالات والوسوم عبر جدول post_tag. يعرّف كلا النموذجين العلاقة باستخدام دالة belongsToMany، ويستنتج Eloquent اسم الجدول الوسيط تلقائياً بدمج اسمي النموذجين بصيغة المفرد وفق الترتيب الأبجدي الإنجليزي.

  • التسمية الأبجدية للوسيط (Alphabetical Pivot): ربط نموذجي Post و Tag ينتج اسم الجدول post_tag لأن حرف P يسبق T أبجدياً.
  • تعريف الطرفين (belongsToMany): يستدعي كلا النموذجين دالة belongsToMany للتنقل بين السجلات في الاتجاهين.
  • تخصيص اسم الجدول (Custom Pivot Name): مرر اسم الجدول الوسيط كمعامل ثانٍ للدالة إذا كان يختلف عن الاصطلاح القياسي.
مخطط معماري يوضح علاقة متعدد لمتعدد والجداول الوسيطة Pivot في Eloquent في إطار العمل Laravel 12
PHP
use Illuminate\Database\Eloquent\Relations\BelongsToMany;

public function tags(): BelongsToMany
{
    return $this->belongsToMany(Tag::class);
}

$tags = $post->tags;