شرح صفوف ومحتوى الفقرة
عندما تحتاج لتصفية أو ترتيب السجلات داخل العلاقة المحملة مسبقاً نفسها، مرر مصفوفة ترابطية إلى دالة with يكون مفتاحها اسم العلاقة وقيمتها دالة مغلقة تخصص الاستعلام. أما إذا كان كائن النموذج الأب محملاً مسبقاً في الذاكرة، فاستخدم دالتي load أو loadMissing لتحميل علاقاته لاحقاً بكفاءة.
- تقييد التحميل المسبق (Constrained with): صفِّ أو رتب السجلات المرتبطة داخل دالة with المغلقة دون التأثير على نتائج النموذج الأب.
- التحميل اللاحق (load Method): يحمل العلاقات مسبقاً لكائن نموذج أو مجموعة نماذج موجودة بالفعل في الذاكرة.
- التحميل الذكي بدون تكرار (loadMissing): يجلب العلاقة فقط إذا لم تكن قد حُملت مسبقاً خلال دورة الطلب الحالية.
PHP
$posts = Post::with(['comments' => function ($q) {
$q->where('is_approved', true)->latest();
}])->get();
$post->loadMissing('tags');