Буду очень рад, если кто-то пояснит мне, как создавать сложные конструкции в этом самом "пропеллере".
Задача:
Добавить в существующую модель, часть запроса
$products = \SProductsQuery::create()
->joinWithI18n(\MY_Controller::getCurrentLocale())
->leftJoin('ProductVariant')
->joinMainCategory()
->where('MainCategory.Active = ?', 1)
->orderBy('ProductVariant.Stock', 'DESC')
->distinct()
->filterByActive(true);
//....тут пропущен некоторый участок кода - различные условия и проверки .....
$products = $products
->useI18nQuery(\MY_Controller::getCurrentLocale())
->filterByName('%' . $search_str . '%')
->endUse();
$products = $products->orWhere('ProductVariant.Number LIKE ?', '%' . $search_str . '%');
$products = $products->orWhere('SProducts.Id LIKE ?', $search_str);
И вот после этого мне нужно добавить еще одно условие, вида:
OR WHERE (SProductsI18n.NAME LIKE = '$someString' AND SProductsI18n.NAME LIKE '$oneMoreString')
Убейте, но не могу понять как это на пропеллере делается.
Пробовал работать как с PDO - предать массив.
$stringArr = array($someString, $oneMoreString);
$products = $products->orWhere('SProductsI18n.Name LIKE ? AND SProductsI18n.Name LIKE ?', $stringArr);
Что-то не выходит. Попытался понять, как работает этот Propel. Но на пятом уровне наследования - голова кругом пошла.