2014-04-11 27 views
1

我想用calldataprovider的条件查找哪个数组的结果?如何在数据提供者的条件下使用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; 

} 

,应该怎样使用数组MULTY行

回答

1

你函数应该看起来像

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

    return $dataProvider; 
} 

但是$ subject_ids不是为int数组中你的榜样,所以你可以这样做:

$ids = CHtml::listData(subject::model()->findAll($criteria), 'id', 'id'); 

并且您将获得ids。

相关问题