что у элементов мультипривязка к разделам?
в старом ядре за это отвечает фильтр по SECTION_ID, в ElementTable::getMap есть только IBLOCK_SECTION_ID который отвечает за основной раздел(в старом ядре оно тоже есть)
Попробуйте с полем SECTIONS получить коллекции разделов. Получить значения коллекции можно с помощью метода getAll() $element = \Bitrix\Iblock\Elements\ElementCatalogTable::getList([ 'select' => ['ID', 'SECTIONS'], 'filter' => [ 'ID' => $elementId, ], ])->fetchObject(); foreach ($element->getSections()->getAll() as $section) { var_dump($section->getId()); var_dump($section->getCode()); var_dump($section->getName()); }
тут \Bitrix\Iblock\Elements\ElementXXXXXTable - XXXXX - Символьный код API инфоблока
спасибо, понял в какую сторону копать попробовал сделать фильтр по разделам, словил баг [Error] Call to undefined method Bitrix\Main\ORM\Fields\Relations\ManyToMany::getColumnName() (0) это у меня косяк или в ТП писать? upd: на текущий момент обновления все установлены
делал 'filter' => ['ACTIVE'=>'Y','SECTIONS'=>[$section['ID']], вместо 'filter' => ['ACTIVE'=>'Y','SECTIONS.ID'=>[$section['ID']], что вероятно и вызывало ошибку, но все равно странное поведение что такого рода ошибку выкидывает, а не то что не дает фильтровать по айдишникам напрямую в поле
SECTIONS - это не поле, а референс
я с этим уже разобрался, просто странную ошибку выкидывал при попытке фильтрации, если по нему нельзя сделать выборку, то обычно пишет, а мне выкинуло ошибку Call to undefined method Bitrix\Main\ORM\Fields\Relations\ManyToMany::getColumnName() (0)
Обсуждают сегодня