Bạn thực hiện truy vấn rồi nhận kết quả. Khi bạn đã có kết quả, bạn sẽ có được số lượng hồ sơ bằng cách thực hiện một count
về kết quả:
$results = $query->getResult();
$resultCount = count($results);
Nếu bạn đang quan tâm đến phân trang, giống như nhận được 25 hồ sơ ra khỏi tổng số. Sau đó, bạn có hai lựa chọn.
Bạn thực hiện các truy vấn hai lần, một lần để có được tổng kết quả, thời gian khác để lấy chỉ 25 kết quả bằng cách sử dụng phương pháp setFirstResult
và setMaxResults
. Phương pháp này setFirstResult
cho phép bạn đặt độ lệch và số thứ hai, setMaxResults
, số lượng bản ghi. Các mã sau đây sẽ cung cấp cho bạn kết quả khác nhau, từ 25 đến 50, đó là trang thứ hai nếu bạn sử dụng 25 hồ sơ theo trang.
$query->setFirstResult(25);
$query->setMaxResults(25);
Bạn có thể kiểm tra học thuyết-phần mở rộng cho Doctrine2 có hỗ trợ paginator. Các phần mở rộng này đã được thực hiện bởi một trong những nhà phát triển của Doctrine2. Bạn có thể xem lại các số here này.
Hy vọng trợ giúp này.
Kính trọng,
Matt
Đây là giải pháp kém + nó không hoạt động trong Symfony2 mới hơn - sử dụng câu trả lời dưới đây để thay thế. – thorinkor