Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.33 KB | None | 0 0
  1. $queryObj = ElementTable::query()
  2.     ->where([
  3.         ['IBLOCK.CODE', 'apartments'], ['ACTIVE', 'Y'], // получаю только активные элементы из инфоблока "Квартиры"
  4.         ['APARTMENT_PROPERTY.CODE', 'LAYOUTS_ID'], // получаю только свойство с кодом LAYOUTS_ID (привязка к эл. инфоблока "Квартиры")
  5.         ['LAYOUT_PROPERTY.CODE', 'COMPLEX_ID'], // получаю только свойство с кодом COMPLEX_ID (привязка к эл. инфоблока "Планировки")
  6.     ])
  7.  
  8.     ->registerRuntimeField(new Reference( // получаю таблицу свойств инфоблока "Квартиры"
  9.         'APARTMENT_PROPERTY',
  10.         PropertyTable::class,
  11.         Join::on('this.APARTMENT_ELEMENT_PROPERTY.IBLOCK_PROPERTY_ID', 'ref.ID')
  12.     ))
  13.     ->registerRuntimeField(new Reference( // получаю таблицу значений свойств инфоблока "Квартиры"
  14.         'APARTMENT_ELEMENT_PROPERTY',
  15.         ElementPropertyTable::class,
  16.         Join::on('this.ID', 'ref.IBLOCK_ELEMENT_ID')
  17.     ))
  18.  
  19.     ->registerRuntimeField(new Reference( // получаю таблицу элементов инфоблока "Планировки"
  20.         'LAYOUT',
  21.         ElementTable::class,
  22.         Join::on('this.APARTMENT_ELEMENT_PROPERTY.VALUE', 'ref.ID')
  23.     ))
  24.     ->registerRuntimeField(new Reference( // получаю таблицу свойств инфоблока "Планировки"
  25.         'LAYOUT_PROPERTY',
  26.         PropertyTable::class,
  27.         Join::on('this.LAYOUT_ELEMENT_PROPERTY.IBLOCK_PROPERTY_ID', 'ref.ID')
  28.     ))
  29.     ->registerRuntimeField(new Reference( // получаю таблицу значений свойств инфоблока "Планировки"
  30.         'LAYOUT_ELEMENT_PROPERTY',
  31.         ElementPropertyTable::class,
  32.         Join::on('this.LAYOUT.ID', 'ref.IBLOCK_ELEMENT_ID')
  33.     ))
  34.  
  35.     ->addSelect('LAYOUT_ELEMENT_PROPERTY.VALUE', 'COMPLEX_ID') // получаю ID домов с активными квартирами. Указываю alias "COMPLEX_ID"
  36.     ->addSelect(new ExpressionField('CNT', 'COUNT(%s)', 'LAYOUT_ELEMENT_PROPERTY.VALUE')) // считаю количество активных квартир
  37. ;
  38.  
  39. var_dump($queryObj->fetchAll());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement