You usually do not instantiate BatchQueryResult directly. Instead, you obtain it by calling [[Query::batch()]] or [[Query::each()]]. Because BatchQueryResult implements the [[\Iterator]] interface, you can iterate it to obtain a batch of data in each iteration. For example, php $query = (new Query)->from('user'); foreach ($query->batch() as $i => $users) { $users represents the rows in the $i-th batch } foreach ($query->each() as $user) { }
Since: 2.0
Author: Qiang Xue (qiang.xue@gmail.com)
Inheritance: extends yii\base\Object, implements Iterator
コード例 #1
0
ファイル: Query.php プロジェクト: VirtualRJ/yii2
 /**
  * Starts a batch query and retrieves data row by row.
  * This method is similar to [[batch()]] except that in each iteration of the result,
  * only one row of data is returned. For example,
  *
  * ```php
  * $query = (new Query)->from('user');
  * foreach ($query->each() as $row) {
  * }
  * ```
  *
  * @param integer $batchSize the number of records to be fetched in each batch.
  * @param Connection $db the database connection. If not set, the "db" application component will be used.
  * @return BatchQueryResult the batch query result. It implements the [[\Iterator]] interface
  * and can be traversed to retrieve the data in batches.
  */
 public function each($batchSize = 100, $db = null)
 {
     return Yii::createObject(['class' => BatchQueryResult::className(), 'query' => $this, 'batchSize' => $batchSize, 'db' => $db, 'each' => true]);
 }