我想使用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'.....
答案 0 :(得分: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()就可以了。我希望这有帮助!