Ważne jest, aby zrozumieć, jak działa gorliwe ładowanie Laravela. Jeśli chętnie załadujemy Twój przykład, Laravel najpierw pobierze wszystkie wątki. Następnie pobiera wszystkie komentarze i dodaje je do obiektu wątków. Ponieważ używane są oddzielne zapytania, nie jest możliwe uporządkowanie wątków według komentarzy.
Zamiast tego musisz użyć sprzężenia. Zwróć uwagę, że w tym przykładzie zgaduję nazwy tabel/kolumn.
$threads = Thread::leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();
Ponieważ dołączasz, może być konieczne ręczne określenie kolumn, aby wybrać nazwy kolumn w tabelach.
$threads = Thread::select('thread.*')->leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();