Опция фильтра Yii с точным значением - PullRequest
1 голос
/ 11 февраля 2012

У меня есть сетка с опцией поиска по таблице базы данных. Все работает нормально, но проблема в том, что когда я ввожу значение 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);

1 Ответ

1 голос
/ 12 февраля 2012

Вы можете настроить любой тип mySql WHERE условие , которое вы хотите, как это:

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

Вы должны иметь возможность использовать compare () , но вам, возможно, придется преобразовать идентификатор в целое число:

$criteria->compare('proc_id', (int) $this->proc_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...