UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: muldy от 24 Июля 2014, 21:23:25

Название: ID типа данных Selector
Отправлено: muldy от 24 Июля 2014, 21:23:25
Здравствуйте!
Столкнулся с проблемой, работаю с Selector, он должен производить выборку как я понимаю по заданному id, ноо в результате он мне возвращает и дочерние типы данных!
Как ограничить выборку только по основному ID, те по Объекту каталога, и не использовать дочерние типы?
Название: Re:ID типа данных Selector
Отправлено: ilyar от 24 Июля 2014, 21:38:32
Здравствуйте!
Столкнулся с проблемой, работаю с Selector, он должен производить выборку как я понимаю по заданному id, ноо в результате он мне возвращает и дочерние типы данных!
Как ограничить выборку только по основному ID, те по Объекту каталога, и не использовать дочерние типы?

Печально читать подобные вопросы. Будет просто замечательно если вопросы будут содержать необходимую информацию для возможности дать ответ.
Формулируя вопрос по схеме:

Решаю такую вот задачу.
Делаю так то и так, можно в общих чертах, но лучше подробно и с примерами кода.
Некоторое ревю достигнутого результата с описанием возникших сложностей.
Опционально фантазии и философствования на тему.
Название: Re:ID типа данных Selector
Отправлено: muldy от 25 Июля 2014, 23:21:43
Да ссори!
 
В общем требуется выбрать все объекты каталога, например:

$pages = new selector('pages');

$pages->types('object-type')->id(78);

Соотв это объект каталога, но данная выборка еще и выбирает дочерние объекты, с ID 143.

Вот в чем проблема, которая до сих пор не решена!
Название: Re:ID типа данных Selector
Отправлено: admin от 26 Июля 2014, 00:28:35
Да ссори!
 
В общем требуется выбрать все объекты каталога, например:

$pages = new selector('pages');

$pages->types('object-type')->id(78);

Соотв это объект каталога, но данная выборка еще и выбирает дочерние объекты, с ID 143.

Вот в чем проблема, которая до сих пор не решена!

эта проблема, по не до конца понятным мне причинам, является специально вставленным куском кода в классе selector

foreach($objectTypes as $objectTypeId) {
$subTypes = array_merge($subTypes, $typesCollection->getChildClasses($objectTypeId));
}

$objectTypes = array_unique(array_merge($objectTypes, $subTypes));

Так что, если хотите получить только родительский тип данных идите на хитрости(пусть у него будет какое-то поле, с каким-то значением, которого нет у дочерних типов) или правьте sql запрос
Название: Re:ID типа данных Selector
Отправлено: muldy от 01 Августа 2014, 16:51:41
Спасибо за овтет буду искать реешние!