Điều quan trọng là phải hiểu cách tải mong muốn của Laravel hoạt động. Nếu chúng tôi muốn tải ví dụ của bạn, Laravel trước tiên sẽ tìm nạp tất cả các chuỗi. Sau đó, nó tìm nạp tất cả các bình luận và thêm chúng vào đối tượng chủ đề. Vì các truy vấn riêng biệt được sử dụng nên không thể sắp xếp các chuỗi theo nhận xét.
Thay vào đó, bạn cần sử dụng một phép nối. Lưu ý rằng tôi đang đoán tên bảng / cột của bạn trong ví dụ này.
$threads = Thread::leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();
Vì bạn đang tham gia, bạn có thể cần chỉ định các cột theo cách thủ công để chọn tên cột trong bảng của mình.
$threads = Thread::select('thread.*')->leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
->with('comments')
->orderBy('comment.created_at', 'desc')
->get();