2015-01-21 47 views
1

我想創建ArrayDataProvider。我打電話數據提供程序是這樣的:如何限制yii2中的ArrayDataProvider?

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

這裏我使用的pageSize。當我在沒有顯示LIMIT的sql中運行此代碼時,但分頁正在工作。我有超過100個帖子,並且所有這些帖子都在加載。生成的SQL查詢:SELECT * FROM帖子。 我必須做些什麼來解決這個問題。 謝謝!

+1

爲什麼不使用'ActiveDataProvider'呢? – topher 2015-01-21 07:15:35

+0

其簡單的例子。我正在使用關係表。有6個表連接到此查詢。 – iProgrammer 2015-01-21 07:16:24

+0

我不能使用ActiveDataProvider,因爲每個項目都使用另一個表格細節。這意味着每個項目需要6個額外的查詢。如果你計算10個項目,我必須運行61個選擇。 – iProgrammer 2015-01-21 07:20:46

回答

0

試試這個

'pageSizeLimit' => [5,100],