如何在 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();

希望对你有用。