Есть 3 инфоблока: Улица, Город, Страна и все они соединены последовательно через привязку к элементам. Мне необходимо отфильтровать все улицы которые не находятся в определённой стране, например с ID = 1.
Сперва думал это будет достаточно просто:
Но в выводе я вижу что PROPERTY_CITY_PROPERTY_COUNTY => 1, в том числе он неверен если я убираю отрицание и ставлю другую (отличную от еденицы) страну.
Воспользовался SubQuery:
Результат идентичен. Где я ошибся? Спасибо
Сперва думал это будет достаточно просто:
Код |
---|
$order = array(); $filter = array('IBLOCK_ID' => 3, '!PROPERTY_CITY.PROPERTY_COUNTRY' => '1'); $select = array('ID', 'NAME', 'CODE', 'PROPERTY_CITY', 'PROPERTY_CITY.PROPERTY_COUNTRY'); $item = CIBlockElement::GetList($order, $filter, false, array('nPageSize' => 1), $select); print_r($item->Fetch()); |
Но в выводе я вижу что PROPERTY_CITY_PROPERTY_COUNTY => 1, в том числе он неверен если я убираю отрицание и ставлю другую (отличную от еденицы) страну.
Воспользовался SubQuery:
Код |
---|
$order = array(); $filter = array('IBLOCK_ID' => 3, '!PROPERTY_CITY.PROPERTY_COUNTRY' => '1'); $select = array('ID', 'NAME', 'CODE', 'PROPERTY_CITY', 'PROPERTY_CITY' => CIBlockElement::SubQuery('ID', array('IBLOCK_ID' => 2, '!PROPERTY_COUNTRY' => '1')); $item = CIBlockElement::GetList($order, $filter, false, array('nPageSize' => 1), $select); print_r($item->Fetch()); |
Результат идентичен. Где я ошибся? Спасибо