2012-05-04 22 views
0

我想通過在由逗號分隔的查詢字符串中搜索每個字詞來搜索我的模型。例如,如果字符串是"matza,red wine",那麼我想搜索匹配"matza""red%20wine"的項目。這是我使用的代碼:Yii搜索逗號分隔的查詢字符串中的每個字詞不按預期方式工作

 $qString = $_GET['q']; 

     $criteria = new CDbCriteria(); 

     $queryTerms = explode(',', $qString); 

     foreach ($queryTerms as $q) { 

       $tCriteria = new CDbCriteria(); 

       $criteria->addSearchCondition('name', $q, true); 
       $criteria->addSearchCondition('text_ingredients', $q, true, 'OR'); 

       $criteria->mergeWith($tCriteria); 
     } 

     $results = FoodItem::model()->findAll($criteria); 

,它運行和所有的,但結果是不正確的。例如,我預計搜索"A,B"將產生與"B,A"相同的結果,但它不會。我希望有一種方法來記錄或echo產生的$criteria的一些表示。我有一種感覺,它與我使用mergeWith的方式有關。

請讓我知道我要去哪裏錯了。

回答

2

tCriteria在循環結束時似乎爲空。你沒有合併任何東西。

也許你打算讓兩個addSearchCondition行在tCriteria上工作,而你讓他們在標準上工作。

+0

尷尬。我想這就是當你使用看起來非常相似的差變量名稱時所得到的結果。 –

相關問題