شرح صفوف ومحتوى الفقرة
للانتقال من النموذج التابع الذي يحمل المفتاح الأجنبي صعوداً إلى النموذج الأب المالك له، نعرف علاقة عكسية باستخدام دالة 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']);
}