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.1
Author: Paul Klimov (klimov.paul@gmail.com)
Inheritance: extends yii\base\Object, implements Iterator
Beispiel #1
0
 /**
  * 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 int $batchSize the number of records to be fetched in each batch.
  * @param Connection $db the MongoDB connection. If not set, the "mongodb" 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.
  * @since 2.1
  */
 public function each($batchSize = 100, $db = null)
 {
     return Yii::createObject(['class' => BatchQueryResult::className(), 'query' => $this, 'batchSize' => $batchSize, 'db' => $db, 'each' => true]);
 }