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

One to Many With HasMany علاقة واحد لمتعدد بدالة HasMany

تمثيل علاقتي واحد لواحد وواحد لمتعدد بين نماذج Eloquent باستخدام دوال hasOne و hasMany والعلاقة العكسية belongsTo.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

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

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

تمثل علاقة واحد لمتعدد سجلاً أباً يمتلك عدداً غير محدود من السجلات التابعة، مثل قسم يضم عشرات المنتجات أو مقال يحتوي على عدة تعليقات. يعيد استدعاء دالة hasMany في النموذج الأب مجموعة Eloquent Collection تضم كافة السجلات الأبناء المرتبطة عند قراءتها كخاصية ديناميكية.

  • التسمية بصيغة الجمع (Plural Method Name): يُسمى تابع العلاقة بصيغة الجمع مثل posts أو comments ليعكس إرجاع مجموعة سجلات.
  • إرجاع مجموعة كائنات (Collection Result): قراءة الخاصية الديناميكية تعيد كائن Eloquent Collection قابلاً للدوران والتصفية.
  • الاقتران العكسي (Inverse Pairing): يعرف النموذج الابن دالة مفردة بصيغة belongsTo تشير عكسياً إلى النموذج الأب.
PHP
use Illuminate\Database\Eloquent\Relations\HasMany;

public function comments(): HasMany
{
    return $this->hasMany(Comment::class);
}

$count = $post->comments->count();