Выборка newQuery (msProduct) по значению tv
Много видел подобных вопросов, ответы некоторые 2014 аж, поэтому не завелось к сожалению.
Делаю выборку таким образом (например по цене в конкретных категориях) — работает!
Например есть у товара tv с именем art, в итоге такое условие:
'art' => 10, к сожалению тоже. Как в условии достучаться до этого произвольного tv?
Благоадарю.
Делаю выборку таким образом (например по цене в конкретных категориях) — работает!
$query = $modx->newQuery('msProduct');
$query->leftJoin('msProductData', 'Data');
$query->where(array(
'msProduct.parent:IN' => [10, 20],
'Data.price' => '60',
));
$products= $modx->getCollection('msProduct', $query);
foreach ($products as $k => $product) {
$title = $product->get('pagetitle');
// ....
}
Однако, как я понял по произвольному tv-параметру в данном случаи не отобрать…Например есть у товара tv с именем art, в итоге такое условие:
$query->where(array(
'msProduct.parent:IN' => [10, 20],
'Data.art' => 10,
));
не отбирает… 'art' => 10, к сожалению тоже. Как в условии достучаться до этого произвольного tv?
Благоадарю.
Комментарии: 1
Еще одна таблица нужна — modTemplateVarResource
<?php
$art = 23; // id tv
$query = $modx->newQuery('msProduct');
$query->leftJoin('msProductData', 'Data');
$query->leftJoin('modTemplateVarResource', 'art', 'msProduct.id = art.contentid AND art.tmplvarid = ' . $art);
$query->groupby('msProduct.id');
$query->where(array(
'msProduct.parent:IN' => [10, 20],
'Data.price' => '60',
'art.value' => '10'
));
$products= $modx->getCollection('msProduct', $query);
foreach ($products as $k => $product) {
$title = $product->get('pagetitle');
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.