Difference between #3 and #5 of
How to create a criteria condition for a multiple value text search i.e a "LIKE IN"

Changes

Title unchanged

How to create a criteria condition for a multiple value text search i.e a "LIKE IN"

Category unchanged

How-tos

Yii version unchanged

Tags unchanged

search, like, in, cdbcriteria

Content changed

[...]
For a scenario where only the name field above is the only condition a single CDbCriteria instance will do i.e


```php
$c1
= = new CDbCriteria; foreach ($search_values as $txt) { $c1->compare('name', $txt, true, 'OR');
}
```
[...]
~~~

For cases where this isn't possible,
another solution is to create another CDbCriteria instance to handle this specific condition and use CDbCriteria::addCondition() to[CDbCriteria::mergeWith()](http://www.yiiframework.com/doc/api/1.1/CDbCriteria#mergeWith-detail "CDbCriteria::mergeWith()") to combine the two CDbCriteria instances as follows (thanks to Peter Jk's comment).
 
 
 
```php 
$c1 = new CDbCriteria; // original criteria
 
$c2 = new CDbCriteria; // criteria for handling our search values
 
 
foreach ($search_values as $txt) { 
 
$c2->compare('name', $txt, true, 'OR');
 
}
 
 
$c1->mergeWith($c2); // Merge $c2 into $c1
 
 
```
 
 
You can also use [CDbCriteria::addCondition()](http://www.yiiframework.com/doc/api/1.1/CDbCriteria#addCondition-detail "CDbCriteria::addCondition()") to manually
add it to the original criteria as follows.: ```php $c1= = new CDbCriteria; // original criteria $c2= = new CDbCriteria; // criteria for handling our search values foreach ($search_values as $txt) { $c2->compare('name', $txt, true, 'OR'); } $c1->addCondition($c2->condition); $c1->params += $c2->params; // Add the params for $c2 into $c1 ```
 
 
0 0
5 followers
Viewed: 55 292 times
Version: 1.1
Category: How-tos
Written by: toph
Last updated by: toph
Created on: Jan 20, 2014
Last updated: 8 years ago
Update Article

Revisions

View all history