【问题标题】:how use result of findall in conditon of dataprovider?在 dataprovider 的情况下如何使用 findall 的结果?
【发布时间】:2014-04-11 12:35:10
【问题描述】:

我想使用 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;

}

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

【问题讨论】:

    标签: yii


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多