2012-12-05 2 views
5

Symfony에서 Doctrine ORM과 페이지 매김 방법을 사용하고 싶습니다. KnpPaginatorBundle은 사용하기 쉽고 간단합니다. 또한 쿼리를 쉽게 재사용하고 테스트 할 수 있기 때문에 Doctrine 리포지토리를 사용합니다.Symfony 2에서 교리 문을 효율적으로 페이지 매기기를 사용하려면 어떻게해야합니까?

이 묶음은 내가 발견 한 다른 것처럼 작동합니다. 매개 변수로 쿼리 빌더가 필요합니다. 각 저장소가 매개 변수 (또는 null)로 paginator를 제공하는 것보다 더 나은 방법이 있습니까? 나는 모든 질의 결과에 페이지 매김을하고 싶지 않기 때문에 설명 된 솔루션이 최고라고 생각하지 않으며 sugestions를 찾고 있습니다.

+3

성능면에서 데이터베이스 수준에서 결과의 페이지 매김을 수행하는 것이 좋으므로 결과를 개체에 매핑하는 오버 헤드를 피하고 네트워크 트래픽을 줄이며 데이터베이스 서버는 많은 레코드를 읽거나 필터링하지 않아도됩니다. 어떻게 번들이 작동하는지 모르겠지만 어떤 쿼리가 실행되는지 확인하고 쿼리 자체에서 페이지 매김이 발생하는지 확인할 수 있습니다. 그렇게된다면, 당신은 잘 할 수 있습니다. 동일한 쿼리를 반복해서 작성하고 싶지 않은 경우 저장소에 정의하십시오. http://symfony.com/doc/2.0/book/doctrine.html#custom-repository-classes – Xocoatzin

+0

언급하는 것을 잊었습니다. 데이터베이스 레벨에서 페이지 매기기를 수행하면 모든 레코드를 세 어서 얼마나 많은 페이지가 있는지 계산할 수 있습니다. 이것을 위해 캐시를 사용하거나 테이블의 길이를 추적하여이를 피할 수 있습니다. – Xocoatzin

+0

https://github.com/KnpLabs/knp-components –

답변

관련 문제