यह समझना महत्वपूर्ण है कि लारवेल की उत्सुक लोडिंग कैसे काम करती है। यदि हम आपका उदाहरण लोड करने के लिए उत्सुक हैं, तो Laravel पहले सभी थ्रेड प्राप्त करता है। फिर यह सभी टिप्पणियां प्राप्त करता है और उन्हें थ्रेड ऑब्जेक्ट में जोड़ता है। चूंकि अलग-अलग क्वेरी का उपयोग किया जाता है, इसलिए टिप्पणियों द्वारा थ्रेड्स को ऑर्डर करना संभव नहीं है।
आपको इसके बजाय एक जॉइन का उपयोग करने की आवश्यकता है। ध्यान दें कि मैं इस उदाहरण में आपके टेबल/कॉलम नामों का अनुमान लगा रहा हूं।
$threads = Thread::leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();
चूंकि आप शामिल हो रहे हैं, इसलिए आपको अपने टेबल कॉलम नाम चुनने के लिए मैन्युअल रूप से कॉलम निर्दिष्ट करने की आवश्यकता हो सकती है।
$threads = Thread::select('thread.*')->leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();