شرح صفوف ومحتوى الفقرة
يحصل كل نموذج يتم جلبه عبر علاقة متعدد لمتعدد تلقائياً على خاصية باسم pivot تمثل سجل الجدول الوسيط الذي ربط الطرفين. يحتوي كائن pivot افتراضياً على المفتاحين الأجنبيين فقط، لذا يجب إلحاق دالتي withPivot و withTimestamps بتعريف العلاقة لقراءة الأعمدة الإضافية والطوابع الزمنية.
- كائن السجل الوسيط (pivot Property): اقرأ بيانات صف الربط الوسيط مباشرة عبر الخاصية $tag->pivot أثناء الدوران على النتائج.
- تضمين الأعمدة الإضافية (withPivot): تحدد أسماء الأعمدة الإضافية في الجدول الوسيط ليقوم Eloquent بجلبها في الاستعلام.
- تحديث الطوابع الزمنية (withTimestamps): تتولى تعبئة وتحديث عمودي created_at و updated_at في الجدول الوسيط تلقائياً.
PHP
public function roles(): BelongsToMany
{
return $this->belongsToMany(Role::class)
->withPivot('assigned_by')
->withTimestamps();
}
$by = $user->roles->first()->pivot->assigned_by;