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

One to One With HasOne علاقة واحد لواحد بدالة HasOne

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

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

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

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

  • تعريف الدالة (hasOne Method): تُعرّف داخل كلاس النموذج الأب الذي لا يحتوي جدوله على عمود المفتاح الأجنبي.
  • اصطلاح المفتاح الأجنبي (Foreign Key Convention): يفترض تلقائياً اسم النموذج الأب بصيغة snake_case متبوعاً باللاحقة _id.
  • تخصيص المفاتيح (Custom Keys): يتيح المعاملان الثاني والثالث تحديد اسم المفتاح الأجنبي والمفتاح المحلي يدوياً عند اختلافهما.
مخطط معماري يوضح علاقتا واحد لواحد وواحد لمتعدد في نماذج Eloquent في إطار العمل Laravel 12
PHP
use Illuminate\Database\Eloquent\Relations\HasOne;

public function profile(): HasOne
{
    return $this->hasOne(Profile::class);
}

$bio = $user->profile->bio;