Ошибка "Field is not presented in selected object types" — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Актуально для версии 2.9''' Иногда при составлении выборок с помощью selector возникает ошибк…»)
 
Строка 21: Строка 21:
 
</source>
 
</source>
  
Для решения проблемы Вам может помочь следующий способ - необходимо сначала выбрать по type id Каталога, чтобы выбрать все, и после этого уже добавить выборку по name('catalog', 'object'), таким образом исключив из выборки подкаталоги. Итоговый код выборки будет следующий:
+
Для решения проблемы Вы можете воспользоваться следующим способом - необходимо сначала выбрать по type id Каталога, чтобы выбрать все, и после этого уже добавить выборку по name('catalog', 'object'), таким образом исключив из выборки подкаталоги. Итоговый код выборки будет следующий:
 
<source lang="php">
 
<source lang="php">
 
$obj_list = new selector('pages');
 
$obj_list = new selector('pages');

Версия 10:37, 17 июня 2013

Актуально для версии 2.9

Иногда при составлении выборок с помощью selector возникает ошибка "Field is not presented in selected object types", хотя данное поле присутствует у обьектов. Такая ошибка может возникать из-за того, что в разное время были внесены изменения в типы данных, по которым делается выборка, или были изменения в иерархии типах данных. Из-за этого, подобный код для выборки по полю "data_razmeweniya" среди всех объектов не работает:

$obj_list = new selector('pages');
$obj_list->types('hierarchy-type')->name('catalog', 'object');
$obj_list->order('data_razmeweniya')->desc();

Хотя поле "data_razmeweniya" присутствует. Примерная структура:

*Каталог
   *Подкаталог_1
      *Объект_1 
   *Подкаталог_2
      *Объект_2
   *Подкаталог_3
      *Объект_3

Для решения проблемы Вы можете воспользоваться следующим способом - необходимо сначала выбрать по type id Каталога, чтобы выбрать все, и после этого уже добавить выборку по name('catalog', 'object'), таким образом исключив из выборки подкаталоги. Итоговый код выборки будет следующий:

$obj_list = new selector('pages');
$obj_list->types('object-type')->id(125);
$obj_list->types('hierarchy-type')->name('catalog', 'object');
$obj_list->order('data_razmeweniya')->desc();