0

我想使用 Yii 生成的搜索功能将选定的值返回到 CGridView(类似于 IN 查询)。为了进一步详细说明,让我使用下面的示例:

在这里,我根据值 '34455' (fk_recordid) 返回值

public function search()
{
    $fk_recordid = '34455'; 
    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id,true);
    $criteria->compare('fk_recordid',$fk_recordid,true);
    $criteria->compare('babypid',$this->babypid);
    $criteria->compare('babysbn',$this->babysbn);   

    return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
    ));
}

我将如何更改此代码以扩大 fk_recordid 标准,即返回基于多个值的记录,例如 '34455'、'47859'、'78956' .....

4

1 回答 1

1

而不是像你这样的compare() :

$fk_recordid = '34455';
$criteria->compare('fk_recordid',$fk_recordid,true);

您可以像这样使用addInCondition()

$myRecordIds = array('34455','47859','78956');
$criteria->addInCondition('fk_recordid',$myRecordIds);

我不知道你是如何将所有这些记录 ID 从 CGridView 传递到 search() 函数的,但是一旦你有了它们 addInCondition() 就可以工作了。我希望这有帮助!

于 2011-03-25T13:45:51.593 回答