Yii 在数据提供者的情况下如何使用findall的结果?

Yii 在数据提供者的情况下如何使用findall的结果?,yii,Yii,我想在cactivedataprovider条件下使用findall的结果,它是数组 $criteria->condition = 'department_id=:email'; $criteria->params = array(':email'=>$id); $subject_ids=subject::model()->findAll($criteria); public function myDataProvider($subject_ids)

我想在cactivedataprovider条件下使用findall的结果,它是数组

 $criteria->condition = 'department_id=:email';
    $criteria->params = array(':email'=>$id);
    $subject_ids=subject::model()->findAll($criteria);

public function myDataProvider($subject_ids)
{

    foreach($subject_ids as $value){
        print_r($value);
        foreach($value as $val){
            echo $val;
        }
    }
    $dataProvider=new CActiveDataProvider('Lecture', array(
        'criteria'=>array(

            'condition'=>'subject_id='+$val,
        )
    ));

    return $dataProvider;

}

我应该如何使用数组有多行

您的函数应该是这样的

public function myDataProvider($subject_ids)
{
    $criteria = new CDbCriteria;
    $criteria->compare('subject_id=', $subject_ids);
    $dataProvider=new CActiveDataProvider('Lecture', array(
        'criteria'=>$criteria
    ));

    return $dataProvider;
}
但是$subject_id在您的示例中不是int数组,因此您可以这样做:

$ids = CHtml::listData(subject::model()->findAll($criteria), 'id', 'id');
你会得到身份证