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

Querying Relations vs Properties الخصائص الديناميكية ودوال العلاقة

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

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

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

يوفر Eloquent طريقتين مختلفتين للتعامل مع العلاقة: قراءتها كخاصية تحمل كامل السجلات المرتبطة في الذاكرة، بينما استدعاؤها كدالة يعيد باني استعلام العلاقة. يتيح ربط الشروط بدالة العلاقة تنفيذ التصفية والترتيب مباشرة داخل قاعدة البيانات دون تحميل صفوف غير مطلوبة.

  • الوصول كخاصية ديناميكية (Property Access): كتابة $user->posts بدون أقواس تنفذ استعلام الجلب فوراً وتعيد المجموعة كاملة.
  • الاستدعاء كدالة استعلام (Method Call): كتابة $user->posts بالأقواس تعيد كائن باني الاستعلام لإضافة شروط مخصصة.
  • التصفية في القاعدة (SQL Filtering): ربط دوال where أو latest بدالة العلاقة يقلل استهلاك ذاكرة الخادم بشكل كبير.
PHP
$allPosts = $user->posts;

$published = $user->posts()
    ->where('is_published', true)
    ->latest()
    ->get();