Yii 如何使用每个产品标识获取“dataProvider”

Yii 如何使用每个产品标识获取“dataProvider”,yii,Yii,我有一个订单表,其中product_id是类似于10,11,12,13的字符串。并使用此id创建产品表。 如何使用每个产品id获取数据提供者 我的代码是 public function getProducts($id){ $idarray = explode(',', $id); $dataProviderProduct = Array(); foreach($idarray as $i=>$id){ $dataProviderProduct[

我有一个订单表,其中product_id是类似于10,11,12,13的字符串。并使用此id创建产品表。 如何使用每个产品id获取数据提供者 我的代码是

 public function getProducts($id){
    $idarray = explode(',', $id);

    $dataProviderProduct = Array();
    foreach($idarray as $i=>$id){

        $dataProviderProduct[$i]=new CActiveDataProvider('Product',
                array(  'criteria'=>array(
                            'condition'=>'id=:id',
                            'params'=>array(':id' => $id),

                        ),
                        'pagination'=>array( 'pageSize'=>10),
                    )
                );
    }
    return $dataProviderProduct;
}
但这是错误的代码

请这样使用:

$idarray = explode(',', $id);
$criteria = new CDbCriteria();
$criteria->addInCondition('id', $idarray);
$data = ModelName::model()->findAll($criteria);

是的,你说得对。但是如果我的订单表包含prodict_id“33,33,34”;我会用2个产品来代替3我不明白你的意思?若id不唯一,那个么问题在哪里?在我的视图中,我为每个经过身份验证的用户(订单历史记录)添加了ListView。对于每个项目,我为订购的产品添加Gridview。若order的product_id为“33,33,34”,网格视图将在线显示表中的两行,分别为id=>33和id=>34。正如您所见,将显示2种产品intead 3。这是我的问题