شرح صفوف ومحتوى الفقرة
يوفر 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();