Yii 在逗号分隔的查询字符串中搜索每个术语,无法按预期工作


Yii search for each term in a comma-separated query string not working as expected

我想通过在逗号分隔的查询字符串中搜索每个术语来完成搜索我的模型。例如,如果字符串"matza,red wine"那么我想搜索与"matza""red%20wine"匹配的项目。这是我正在使用的代码:

       $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的方式有关。

请让我知道我哪里出错了。

tCriteria在循环结束时似乎为空。你没有合并任何东西。

也许你的意思是让两个addSearchCondition行在tCriteria上工作,而你让它们在条件上工作。