How to iterate over Yii CActiveDataProvider object?

后端 未结 4 1180
礼貌的吻别
礼貌的吻别 2020-12-28 10:17

How to iterate over a dataprovider object? I want to access the \'name\' field of each row returned and build a list. Can you help?

Table structure for table

4条回答
  •  北荒
    北荒 (楼主)
    2020-12-28 10:38

    If you need itarate large data collection and you worry about memory usage do this:

    $dataProvider = new CActiveDataProvider('Categories');
    $iterator = new CDataProviderIterator($dataProvider);
    foreach($iterator as $category) {
       print_r($category);
    }
    

    CDataProviderIterator allows iteration over large data sets without holding the entire set in memory.

    some performance tests

    Test                        Time (seconds)          Memory (bytes)
    CDbDataReader               4.9158580303192         28339952
    CActiveRecord::findAll()    5.8891110420227         321388376
    CDataProviderIterator       6.101970911026          31170504
    

提交回复
热议问题