tôi có một truy vấn lớn (trong trình tạo truy vấn của tôi) và nhiều lần tham gia trái. Vì vậy, tôi nhận được bài viết với ý kiến và thẻ của họ và như vậy. Hãy nói rằng tôi có DQL sau:Doctrine2: Giới hạn với việc tham gia trái/phân trang - Thực hành tốt nhất
$dql = 'SELECT blogpost, comment, tags
FROM BlogPost blogpost
LEFT JOIN blogpost.comments comments
LEFT JOIN blogpost.tags tags';
Bây giờ giả sử cơ sở dữ liệu của tôi có hơn 100 blogposts nhưng tôi chỉ muốn là người đầu tiên 10, nhưng với tất cả các ý kiến của những người 10 và tất cả các thẻ của họ, nếu chúng tồn tại . Nếu tôi sử dụng setMaxResults, nó sẽ giới hạn hàng. Vì vậy, tôi có thể nhận được hai bài viết đầu tiên, nhưng bài cuối cùng trong số đó là thiếu một số nhận xét hoặc thẻ của nó. Vì vậy, followin không hoạt động.
$result = $em->createQuery($dql)->setMaxResults(15)->getResult();
Sử dụng hầu như không ghi nhận Pagination Giải pháp mà tàu với doctrine2.2 không thực sự làm việc cho tôi, hoặc vì nó là quá chậm, tôi có thể cũng tải tất cả các dữ liệu.
Tôi đã thử Giải pháp trong Stackoverflow Article, nhưng ngay cả Điều đó vẫn thiếu một Phương pháp hay nhất và Giải pháp được trình bày chậm chạp.
Không có phương pháp hay nhất về cách thực hiện việc này? Không ai sử dụng Doctrine2.2 trong chế độ Sản xuất?
Vui lòng thêm mã bạn có vào câu hỏi của mình, thậm chí có thể có kết quả ví dụ để hiển thị những gì bạn muốn và những gì bạn đang nhận được. –