Работа с дополнительными свойствами в HostCMS v. 6

Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
dogstudio, http://www.hostcms.ru/forums/2/7692/
Пример выборки по одному св-ву на верной странице этой темы. Чтобы было по ИЛИ, не нужно добавлять
->having('COUNT(shop_item_properties.shop_id)', '=', count($aValues));
Re: Работа с дополнительными свойствами в HostCMS v. 6
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
   Core_Entity::factory('Informationsystem', 19)
);
$Informationsystem_Controller_Show
   ->informationsystemItems()
   ->queryBuilder()
   ->leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
   ->leftJoin('property_value_ints', 'informationsystem_items.id', '=', 'property_value_ints.entity_id',
   array(
      array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
   )
)
// Идентификатор дополнительного свойства
   ->where('informationsystem_item_properties.property_id', '=', 63)
   ->where('informationsystem_item_properties.property_id', '=', 64)
// Значание дополнительного свойства
   ->where('property_value_ints.value', '=', $informationsystem_item_id)
   ->groupBy('informationsystem_items.id')

;
$Informationsystem_Controller_Show
   ->xsl(
   Core_Entity::factory('Xsl')->getByName('СписокСобак')
)
   ->limit(500)
   ->groupsMode('none')
   ->itemsForbiddenTags(array('text'))
   ->group(FALSE)
   ->show();


Так?
Ничего не выбирается. В XML ни одного элемента. Хотя соответствующие элементы точно есть.
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
Совсем не так.
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
   Core_Entity::factory('Informationsystem', 19)
);
$Informationsystem_Controller_Show
   ->informationsystemItems()
   ->queryBuilder()
   ->leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
   ->leftJoin('property_value_ints', 'informationsystem_items.id', '=', 'property_value_ints.entity_id',
      array(
         array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
      )
   )
   // Свойство 1
   ->open()
   // Идентификатор дополнительного свойства
   ->where('informationsystem_item_properties.property_id', '=', 63)
   // Значание дополнительного свойства
   ->where('property_value_ints.value', '=', 123)
   
   ->setOr()
   
   // Свойство 2
   // Идентификатор дополнительного свойства
   ->where('informationsystem_item_properties.property_id', '=', 64)
   // Значание дополнительного свойства
   ->where('property_value_ints.value', '=', 456)
   ->close()
   ->groupBy('informationsystem_items.id')
   // Количество свойств
   //->having('COUNT(informationsystem_item_properties.informationsystem_id)', '=', 2)
   ;

$Informationsystem_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName('СписокСобак')
   )
   ->limit(500)
   ->groupsMode('none')
   ->itemsForbiddenTags(array('text'))
   ->group(FALSE)
   ->show();
Re: Работа с дополнительными свойствами в HostCMS v. 6
Так вообще какой-то бред выбрался. Не только из разных инфосистем, но даже и из разных сайтов — в выборку попали инфоэлементы из демосайта. Не говоря уж о том, что из нужной инфосистемы выбрались все элементы, без нужного ограничения по допсвойствам.
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
попробуйте сейчас
Re: Работа с дополнительными свойствами в HostCMS v. 6
Так получилось, спасибо! Только почему-то инфоэлементы выбрались без допсвойств. Что нужно добавить, чтобы выбирались все допсвойства?
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
http://www.hostcms.ru/api6/classes/Informationsystem_Controller_Show.html
Цитата:
itemsProperties(TRUE) выводить значения дополнительных свойств информационных элементов, по умолчанию NULL
Re: Работа с дополнительными свойствами в HostCMS v. 6
А нет ли случайно в ОРМ готового метода для получения count такой выборки? Чтобы получить количество строк до показа инфосистемы.
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
Re: Работа с дополнительными свойствами в HostCMS v. 6
dogstudio,
до показа только делать отдельный запрос.
Re: Работа с дополнительными свойствами в HostCMS v. 6
Может, подскажете, как правильно сделать такой сложный запрос через QueryBuilder?
Я включила SHOW_SQL, сам запрос вижу, но как его правильно прописать через QueryBuilder — не могу сообразить.
http://superweb.pro/ — сайты на HostCMS под ключ
Авторизация