Laravelの熱心な読み込みがどのように機能するかを理解することが重要です。あなたの例を熱心にロードする場合、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();