具有精确值的Yii过滤器选项

时间:2012-02-11 05:38:53

标签: php filter yii

我有一个数据库表格的搜索选项的网格视图。所有工作正常,但问题是当我输入一个id值来搜索我的网格时,它显示所有相关的值行。例如,如果我输入值“1”,它会过滤所有1,如1,10,11,12,13,.... 但我需要只显示我输入的确切值,它应该只显示相应的行,我希望你能理解我的概念...

我的模型如下所示

public function search()
{
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.

    $criteria=new CDbCriteria(array('order'=>'proc_id DESC'));
    //$criteria->condition = " status = 'Active' ";
    $criteria->compare('proc_id',$this->proc_id);
    $criteria->compare('book_id',$this->book_id,true);return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        'pagination'=>array(
        'pageSize'=>50
    ),
    ));
}

嗨我找到了我的问题的答案我刚刚从我的代码中删除了如下

        $criteria->compare('book_id',$this->book_id);

1 个答案:

答案 0 :(得分:1)

您可以像这样设置任何类型的mySql WHERE condition

$criteria->addCondition('proc_id = :procid'); // add your sql WHERE condition
$criteria->params[':procid'] = $this->proc_id; // bind your parameter

应该能够使用compare(),但你可能必须将ID转换为整数:

$criteria->compare('proc_id', (int) $this->proc_id);