Ошибка "Field is not presented in selected object types" — различия между версиями
Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9''' Иногда при составлении выборок с помощью selector возникает ошибк…») |
Alexei (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
</source> | </source> | ||
− | Для решения проблемы | + | Для решения проблемы Вы можете воспользоваться следующим способом - необходимо сначала выбрать по 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();