如何在 Yii 中将 Criteria 传递给数组
How to pass Criteria to an Array in Yii
我有以下疑问..
$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
我们必须为 CArrayDataProvider 使用相同的页面大小 10,以下是您将如何使用 CArrayDataProvider
:
$dataProvider=new CArrayDataProvider($Result, array(
'pagination'=>array(
'pageSize'=>$page_size,
),
));
然后在这样的数组中得到结果..
$MyResult = $dataProvider->getData();
希望对你有用。
我有以下疑问..
$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
我们必须为 CArrayDataProvider 使用相同的页面大小 10,以下是您将如何使用 CArrayDataProvider
:
$dataProvider=new CArrayDataProvider($Result, array(
'pagination'=>array(
'pageSize'=>$page_size,
),
));
然后在这样的数组中得到结果..
$MyResult = $dataProvider->getData();
希望对你有用。