2014-04-22 2 views
1

У меня есть массив из $ items в приложении Yii, который я хочу разбивать на страницы. Массив не связан с базой данных, поэтому здесь нет никаких условий для рассмотрения, просто куча определенных элементов, которые мне нужно отображать. Так что я пытаюсь использовать CActiveDataProvider вроде этого:CActiveDataProvider с регулярным массивом без базы данных

 $dataProvider = new CActiveDataProvider($items, array(
      'pagination' => array(
       'PageSize' => 10, 
      ) 
     )); 

     $this->renderPartial('view', array('dataProvider'=>$dataProvider)); 

Тогда в представлении я пытаюсь отобразить информацию:

 $this->widget('zii.widgets.CListView', array(
     'dataProvider'=>$dataProvider, 
     'itemView'=>'_view', 
     'template'=>"{items}\n{pager}", 
    )); 

я получаю Call to a member function getDbCriteria() on a non-object фатальную ошибку, которая совершенно понятно, так как мой массив $ items настроен, а не связанный с базой данных, поэтому мой вопрос заключается в том, как я могу обойти эту проблему, и возможно ли это с помощью CActiveDataProvider?

Если это не так, есть ли другой способ создать разбивку на страницы для настраиваемого массива, не связанного с базой данных?

ответ

4

Для этого случая имеется CArrayDataProvider.

$dataProvider=new CArrayDataProvider($items, array(
    'pagination'=>array(
     'pageSize'=>10, 
    ), 
)); 
+0

Никогда не замечено, что были занятия - Active & Array. Спасибо! – mmvsbg