شرح صفوف ومحتوى الفقرة
تربط علاقة واحد لواحد نموذجاً أباً بسجل واحد على الأكثر في جدول آخر، مثل امتلاك كل مستخدم لملف شخصي وحيد. يوجه استدعاء دالة hasOne داخل النموذج الأب إطار Eloquent لمطابقة المفتاح الأساسي للأب مع المفتاح الأجنبي القياسي user_id في الجدول التابع.
- تعريف الدالة (hasOne Method): تُعرّف داخل كلاس النموذج الأب الذي لا يحتوي جدوله على عمود المفتاح الأجنبي.
- اصطلاح المفتاح الأجنبي (Foreign Key Convention): يفترض تلقائياً اسم النموذج الأب بصيغة snake_case متبوعاً باللاحقة _id.
- تخصيص المفاتيح (Custom Keys): يتيح المعاملان الثاني والثالث تحديد اسم المفتاح الأجنبي والمفتاح المحلي يدوياً عند اختلافهما.
PHP
use Illuminate\Database\Eloquent\Relations\HasOne;
public function profile(): HasOne
{
return $this->hasOne(Profile::class);
}
$bio = $user->profile->bio;