Выборка ресурсов по ТВ через API

Имеется следующая структура — есть несколько заказов, к каждому заказу можно объявлять «ставку». Хочется получить все ставки, объявленные этому заказу, которые выше новой предложенной ставки.
В ресурсе ставки есть доп. поля bet-price и bet-order в которых указаны предложенная стоимость и ID ресурса заявки соответственно. В итоге у меня получается получить все ставки, у которых bet-price выше, но выдаются вообще все ставки из базы, нужно еще и ограничение по bet-order, но вот как сделать выборку по нескольким ТВ-параметрам — не могу представить. Точнее понимаю что по запросу к бд — должен получаться LEFT JOIN еще раз, но уже не tv.name а tv.name2, но вот как это сделать в API — не очень.
Для выборки по стоимости вот этот код делает то что нужно (стоимость забиваю ручками, т.к. для понимания это без разницы)
$where = $modx->newQuery('modResource');
$where->leftJoin('modTemplateVarResource', 'TemplateVarResources');
$where->leftJoin('modTemplateVar', 'tv', 'tv.id=TemplateVarResources.tmplvarid');
$where->where(array(
    'tv.name' => 'bet-price',
    'template' => 42
));
$where->where("CAST(TemplateVarResources.value AS UNSIGNED INTEGER) >= 1000");
$where->groupby('createdby');
$bets = $modx->getCollection('modResource', $where);

foreach($bets as $id => $bet){
    echo $bet->get('createdby')." - ".$bet->getTVValue('bet-price');
    echo "
";
}
Владимир Новопашин
13 апреля 2017, 10:55
modx.pro
1 044
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0