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

Attaching Detaching and Syncing ربط وفصل ومزامنة السجلات

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

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

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

يوفر Eloquent دوال مخصصة على علاقة متعدد لمتعدد لإدراج أو إزالة أو مزامنة الصفوف داخل الجدول الوسيط. بينما تضيف دالة attach ارتباطات جديدة وتمسحها دالة detach، تقبل دالة sync مصفوفة معرفات وتضمن بقاء تلك المعرفات فقط في الجدول الوسيط دون أي تكرار.

  • إضافة ارتباط (attach Method): تدرج سجلاً أو أكثر في الجدول الوسيط وتقبل تمرير قيم للأعمدة الإضافية عند الحاجة.
  • فصل ارتباط (detach Method): تحذف معرفات محددة من الجدول الوسيط، أو تمسح كافة ارتباطات النموذج إذا استُدعيت بدون معاملات.
  • المزامنة الشاملة (sync Method): مثالية لحفظ مربعات الاختيار في النماذج؛ تضيف المعرفات الجديدة وتحذف غير الموجودة في المصفوفة.
PHP
$post->tags()->attach(3, ['added_by' => 1]);
$post->tags()->detach([2, 4]);

$post->tags()->sync([1, 5, 8]);