2012-02-11 10 views
1

データベーステーブルによる検索オプション付きのgridviewがあります。問題なく、グリッドを検索するためにid値を入力すると、すべての関連する値の行が表示されます。たとえば、値「1」を入力すると、1,10,11,12,13、...のようにすべて1がフィルタリングされます。 しかし、正確な値を表示する必要があります。入力した値は、対応する行のみを表示する必要があります。私のPROBを理解して...正確な値を持つYiiフィルタオプション

私のモデルは

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

以下のように私はちょうど私のコードから真削除私の問題のための答えを発見されました任意の種類の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); 
+0

おかげで私は必要なものdude..thisが、あなたをexactly..fromありませんコード私は答えを得た私は新しい問題が必要なデフォルトでは、グリッドビューを表示していないだけ検索オプションを示していないこのprobでvalues.plsヘルプ – jayanthan

関連する問題