Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $queryObj = ElementTable::query()
- ->where([
- ['IBLOCK.CODE', 'apartments'], ['ACTIVE', 'Y'], // получаю только активные элементы из инфоблока "Квартиры"
- ['APARTMENT_PROPERTY.CODE', 'LAYOUTS_ID'], // получаю только свойство с кодом LAYOUTS_ID (привязка к эл. инфоблока "Квартиры")
- ['LAYOUT_PROPERTY.CODE', 'COMPLEX_ID'], // получаю только свойство с кодом COMPLEX_ID (привязка к эл. инфоблока "Планировки")
- ])
- ->registerRuntimeField(new Reference( // получаю таблицу свойств инфоблока "Квартиры"
- 'APARTMENT_PROPERTY',
- PropertyTable::class,
- Join::on('this.APARTMENT_ELEMENT_PROPERTY.IBLOCK_PROPERTY_ID', 'ref.ID')
- ))
- ->registerRuntimeField(new Reference( // получаю таблицу значений свойств инфоблока "Квартиры"
- 'APARTMENT_ELEMENT_PROPERTY',
- ElementPropertyTable::class,
- Join::on('this.ID', 'ref.IBLOCK_ELEMENT_ID')
- ))
- ->registerRuntimeField(new Reference( // получаю таблицу элементов инфоблока "Планировки"
- 'LAYOUT',
- ElementTable::class,
- Join::on('this.APARTMENT_ELEMENT_PROPERTY.VALUE', 'ref.ID')
- ))
- ->registerRuntimeField(new Reference( // получаю таблицу свойств инфоблока "Планировки"
- 'LAYOUT_PROPERTY',
- PropertyTable::class,
- Join::on('this.LAYOUT_ELEMENT_PROPERTY.IBLOCK_PROPERTY_ID', 'ref.ID')
- ))
- ->registerRuntimeField(new Reference( // получаю таблицу значений свойств инфоблока "Планировки"
- 'LAYOUT_ELEMENT_PROPERTY',
- ElementPropertyTable::class,
- Join::on('this.LAYOUT.ID', 'ref.IBLOCK_ELEMENT_ID')
- ))
- ->addSelect('LAYOUT_ELEMENT_PROPERTY.VALUE', 'COMPLEX_ID') // получаю ID домов с активными квартирами. Указываю alias "COMPLEX_ID"
- ->addSelect(new ExpressionField('CNT', 'COUNT(%s)', 'LAYOUT_ELEMENT_PROPERTY.VALUE')) // считаю количество активных квартир
- ;
- var_dump($queryObj->fetchAll());
Advertisement
Add Comment
Please, Sign In to add comment