Попытка отфильтровать столбец по нескольким условиям с помощью LIKE.
Нравится:
$d = ItemQuery::create()
->filterByName($array_of_names, Criteria::LIKE)
->find();
Но я получаю «преобразование массива в строку в propel / src / Propel / Runtime / Connection / StatementWrapper.php»
Как я могу фильтровать по нескольким «именам», используя критерий «НРАВИТСЯ»?
Я в основном хочу, чтобы запрос был
...name LIKE %name1% OR name LIKE %name2% OR name LIKE %name2%...






Предполагая, что $array_of_names - это [$name1, $name2, ...]
$q = ItemQuery::create()
foreach ($array_of_names as $i => $name) {
if ($i > 0) { // Not the first item in the array
$q->_or();
}
$q->where('Item.Name LIKE %?%', $name);
}
$d = $q->find();
Видеть
http://propelorm.org/blog/2012/03/20/don-t-do-this-at-home-5-use-where-instead-of-filterby.html
и
или
https://github.com/propelorm/Propel/issues/120
Отлично - спасибо! - Также -> filterByName ($ names, Criteria :: LIKE) тоже работает здесь вместо where ()