Составление сложных запросов на базе Propel (ORM)

Буду очень рад, если кто-то пояснит мне, как создавать сложные конструкции в этом самом "пропеллере".
Задача:
Добавить в существующую модель, часть запроса

$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. Но на пятом уровне наследования - голова кругом пошла.
  • Вопрос задан
  • 2526 просмотров
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Не мучьтесь, напишите пару строчек человеческого SQL. Понятно что хочется красиво, все дела, но иногда проще написать старый добрый SQL.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы