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

Inverse Relations With BelongsTo العلاقة العكسية بدالة BelongsTo

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

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

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

للانتقال من النموذج التابع الذي يحمل المفتاح الأجنبي صعوداً إلى النموذج الأب المالك له، نعرف علاقة عكسية باستخدام دالة belongsTo. يضمن إلحاق دالة withDefault بالعلاقة العكسية إرجاع كائن نموذج افتراضي بديل عندما يكون المفتاح الأجنبي فارغاً، مما يمنع أخطاء القيم الفارغة في الواجهات.

  • موقع العلاقة العكسية (belongsTo Location): تُوضع دائماً في كلاس النموذج الذي يحتوي جدوله فعلياً على عمود المفتاح الأجنبي.
  • استنتاج المفتاح من الدالة (Key Inference): يفحص Eloquent اسم دالة العلاقة ويضيف إليه _id لتحديد عمود المفتاح الأجنبي.
  • الكائن البديل الآمن (withDefault): يعيد كائن نموذج بديلاً بقيم افتراضية عند غياب الأب لمنع توقف العرض.
PHP
use Illuminate\Database\Eloquent\Relations\BelongsTo;

public function user(): BelongsTo
{
    return $this->belongsTo(User::class)
        ->withDefault(['name' => 'Guest Author']);
}