Вы не можете отключить нумерацию страниц и использовать CDataProviderIterator
одновременно. Если вы посмотрите на источник CDataProviderIterator
, вы увидите, что он всегда использует нумерацию страниц . Это цель этого класса - он использует нумерацию страниц, чтобы избежать одновременной загрузки миллионов записей в память. Если ваш лимит низок и загрузка всех данных в память не превысит некоторые ограничения памяти, вам, вероятно, вообще не нужно использовать CDataProviderIterator
- вы можете получить данные непосредственно от поставщика данных:
foreach ($dataProvider->getData() as $project) {
$project->doSomething();
}
Или вообще не использовать провайдер данных:
$models = Project::model()->findAll($criteria);
Если вам действительно нужен CDataProviderIterator
, вы можете установить ограничение, используя свойство totalItemsCount
для переопределения реального числа записей:
$dataProvider = new CActiveDataProvider('Project', array(
'criteria' => $criteria,
'totalItemsCount' => 5000,
));
Убедитесь, что ваш totalItemsCount
не меньше, чем фактическое количество записей. Вы можете запросить базу данных для расчета этого значения.