コンマで区切られたクエリ文字列内の各用語を検索して、モデルの検索を実行したいと考えています。たとえば、文字列が の場合、と"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
。
どこが間違っているのか教えてください。