Подскажите, пожалуйста.
Есть ИБ 2.0 (свойства в таблице "b_iblock_element_prop_s1") $iblockId и раздел $iblockSectionId.
У элементов ИБ есть свойство "MY_PROPERTY" (тип список, всего одно значение "Y").
Нужно выбрать все активные подразделы раздела $iblockSectionId и для каждого, выбрать его название, картинку и посчитать сколько в нём товаров.
Подсчитывать товары нужно только те у которых свойство "MY_PROPERTY" !== null.
Как это сделать одним запросом к БД?
Пытаюсь сделать так:
[CODE]$ssections = SectionTable::getList([
'order' => [
'sort' => 'asc',
],
'filter' => [
'ACTIVE' => 'Y',
'IBLOCK_ID' => $iblockId,
'IBLOCK_SECTION_ID' => $iblockSectionId,
'PROPERTY_CODE' => ['MY_PROPERTY'],
'!IBLOCK_SECTION_ELEMENT_PROPERTY_VALUE' => null,
],
'select' => [
'ID',
'NAME',
'PICTURE',
'IBLOCK_ELEMENT_ID' => 'ELEMENT.ID',
'PROPERTY_ID' => 'PROPERTY.ID',
'PROPERTY_CODE' => 'PROPERTY.CODE',
'ELEMENT_PROPERTY',
],
'runtime' => [
(new Reference(
'ELEMENT',
ElementTable::class,
[
'this.IBLOCK_ID' => 'ref.IBLOCK_ID',
'this.ID' => 'ref.IBLOCK_SECTION_ID'
]
)),
(new Reference(
'PROPERTY',
PropertyTable::class,
[
'this.IBLOCK_ID' => 'ref.IBLOCK_ID',
]
)),
(new Reference(
'ELEMENT_PROPERTY',
ElementPropertyTable::class,
[
'this.IBLOCK_ELEMENT_ID' => 'ref.IBLOCK_ELEMENT_ID',
'this.PROPERTY_ID' => 'ref.IBLOCK_PROPERTY_ID',
]
)),
],
]);
var_dump($ssections->fetchAll());[/CODE]но естественно "ELEMENT_PROPERTY" ничего не видит так как свойства в отдельной таблице.
Есть ИБ 2.0 (свойства в таблице "b_iblock_element_prop_s1") $iblockId и раздел $iblockSectionId.
У элементов ИБ есть свойство "MY_PROPERTY" (тип список, всего одно значение "Y").
Нужно выбрать все активные подразделы раздела $iblockSectionId и для каждого, выбрать его название, картинку и посчитать сколько в нём товаров.
Подсчитывать товары нужно только те у которых свойство "MY_PROPERTY" !== null.
Как это сделать одним запросом к БД?
Пытаюсь сделать так:
[CODE]$ssections = SectionTable::getList([
'order' => [
'sort' => 'asc',
],
'filter' => [
'ACTIVE' => 'Y',
'IBLOCK_ID' => $iblockId,
'IBLOCK_SECTION_ID' => $iblockSectionId,
'PROPERTY_CODE' => ['MY_PROPERTY'],
'!IBLOCK_SECTION_ELEMENT_PROPERTY_VALUE' => null,
],
'select' => [
'ID',
'NAME',
'PICTURE',
'IBLOCK_ELEMENT_ID' => 'ELEMENT.ID',
'PROPERTY_ID' => 'PROPERTY.ID',
'PROPERTY_CODE' => 'PROPERTY.CODE',
'ELEMENT_PROPERTY',
],
'runtime' => [
(new Reference(
'ELEMENT',
ElementTable::class,
[
'this.IBLOCK_ID' => 'ref.IBLOCK_ID',
'this.ID' => 'ref.IBLOCK_SECTION_ID'
]
)),
(new Reference(
'PROPERTY',
PropertyTable::class,
[
'this.IBLOCK_ID' => 'ref.IBLOCK_ID',
]
)),
(new Reference(
'ELEMENT_PROPERTY',
ElementPropertyTable::class,
[
'this.IBLOCK_ELEMENT_ID' => 'ref.IBLOCK_ELEMENT_ID',
'this.PROPERTY_ID' => 'ref.IBLOCK_PROPERTY_ID',
]
)),
],
]);
var_dump($ssections->fetchAll());[/CODE]но естественно "ELEMENT_PROPERTY" ничего не видит так как свойства в отдельной таблице.