ActiveDataProvider

时间:2016-12-30 00:56:46

标签: yii yii2 yii2-advanced-app

我有一个与kartik-v / export一起使用的查询将所有结果导出到excel,返回大量结果并导致服务器内存不足。

以下是一个示例查询:

$query = Customer::find()->where('status'=>1);
$activeDataProvider = new ActiveDataProvider(['query'=>$query]) ;
return $activeDataProvider;

如何将其正确转换为批量查询?还是有另一种方法来防止内存泄漏?

1 个答案:

答案 0 :(得分:0)

您可以尝试批量查询http://www.yiiframework.com/doc-2.0/guide-db-active-record.html

  // fetch 10 customers at a time
  foreach (Customer::find()->batch(10) as $customers) {
    // $customers is an array of 10 or fewer Customer objects
 }