Php 带精确值的Yii过滤器选项

Php 带精确值的Yii过滤器选项,php,filter,yii,Php,Filter,Yii,我有一个带有数据库表搜索选项的gridview。一切正常,但问题是当我输入一个id值来搜索我的网格时,它会显示所有相关的值行。例如,如果我输入值“1”,它会过滤所有1,如1,10,11,12,13等,。。。。 但我只需要显示我输入的精确值,它应该只显示相应的行,我希望你理解我的问题 我的模型如下 public function search() { // Warning: Please modify the following code to remove attributes that

我有一个带有数据库表搜索选项的gridview。一切正常,但问题是当我输入一个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
    ),
    ));
}
嗨,我找到了我的问题的答案,我刚刚从我的代码中删除了true,如下所示

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

您可以在需要的地方设置任何类型的mySql,如下所示:

$criteria->addCondition('proc_id = :procid'); // add your sql WHERE condition
$criteria->params[':procid'] = $this->proc_id; // bind your parameter
您应该可以使用,但可能必须将ID强制转换为整数:

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

您可以在需要的地方设置任何类型的mySql,如下所示:

$criteria->addCondition('proc_id = :procid'); // add your sql WHERE condition
$criteria->params[':procid'] = $this->proc_id; // bind your parameter
您应该可以使用,但可能必须将ID强制转换为整数:

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

谢谢,伙计。这是我需要的,但不完全是。从你的代码中,我得到了我需要的答案。新问题默认为不显示网格视图,只显示搜索选项而不是值。请对此问题提供帮助。谢谢,伙计。这是我需要的,但不完全是。从你的代码中,我得到了我需要的答案。新问题默认为不显示网格查看仅显示搜索选项而非值。请在此问题中提供帮助