2015-01-21 2 views
1

ArrayDataProvider를 만들려고합니다. dataProvider를 다음과 같이 호출합니다.yii2에서 ArrayDataProvider를 제한하는 방법은 무엇입니까?

$dataProvider = new ArrayDataProvider([ 
    'allModels' => $query->from('posts')->all(), 
    'pagination' => [ 
      'pageSize' => 10, 
    ], 
]); 

여기서는 pageSize를 사용하고 있습니다. SQL에서 LIMIT를 표시하지 않는이 코드를 실행할 때 페이지 매김이 작동합니다. 나는 100 개가 넘는 게시물을 가지고 있으며 모든 게시물이 모든 시간에로드됩니다. 생성 된 SQL 쿼리 : SELECT * FROM 개의 게시물 이 문제를 해결하기 위해해야 ​​할 일. 감사합니다.

+1

왜 대신'ActiveDataProvider'를 사용하지보십시오? – topher

+0

간단한 예입니다. 관계형 테이블을 사용하고 있습니다. 이 쿼리에는 6 개의 테이블이 연결되어 있습니다. – iProgrammer

+0

모든 항목에서 다른 테이블 세부 정보를 사용하기 때문에 ActiveDataProvider를 사용할 수 없습니다. 즉, 각 항목에 대해 6 개의 추가 쿼리가 필요합니다. 10 항목을 계산하면 61을 실행해야합니다. – iProgrammer

답변

0

는이

'pageSizeLimit' => [5,100], 
관련 문제