У меня есть следующие запросы ..
$Provider1 = new CSqlDataProvider($Query1, array('pagination'=>false));
$Result1 = $bProvider->getData();
$Provider2 = new CSqlDataProvider($Query2, array('pagination'=>false));
$Result2 = $bProvider->getData();
Затем я объединяю оба результата массива
$Result = array_merge($Result1, $Result2);
Как этот массив $Result
содержит несколько записей, как 100+
Вот что я пробовал для нумерации страниц
// Counting array result for pagination
$item_count = count($timelineResult);
$page_size = 10;
$pages = new CPagination($item_count);
$pages->setPageSize($page_size);
$end = ($pages->offset + $pages->limit <= $item_count ? $pages->offset + $pages->limit : $item_count);
$criteria = new CDbCriteria();
$criteria->limit = $end;
$criteria->offset = $pages->offset;
Теперь проблема в том, как я могу применить это $criteria
к моему $Result
Я рекомендую вам использовать CArrayDataProvider
, У вас уже есть результат в массиве $Result
и удалите CDbCriteria
из вашего кода нумерации страниц, так что будет так.
$item_count = count($Result);
$page_size = 10;
$pages = new CPagination($item_count);
$pages->setPageSize($page_size);
$page_size = 10
и мы должны использовать тот же размер страницы 10 для CArrayDataProvider, вот как вы будете использовать CArrayDataProvider
:
$dataProvider=new CArrayDataProvider($Result, array(
'pagination'=>array(
'pageSize'=>$page_size,
),
));
а затем получить результат в массиве, как это ..
$MyResult = $dataProvider->getData();
Я надеюсь, что это будет работать для вас.
Других решений пока нет …