Получи случайную криптовалюту за регистрацию!

Имеем множественное свойство элемента (в примере: код сотрудни | Битриксоид из Колхоза

Имеем множественное свойство элемента (в примере: код сотрудников, привязанных к региону — привязка к элементам инфоблока).

Ситуация: нам нужно вклиниться в D7-ORM-выборку и получить список id.

Так как свойство множественное, каждый fetch будет формировать массив только с одним значением из всего списка множественного значения.

Нам придётся:
• либо переделывать выборку на fetchObject и переписывать все значения через get-ы и коллекции;
• либо фетчить всё столько раз, сколько значений множественных свойств, опять же переписывая выборку так, чтобы свойства накапливались и в результате значения распределялись по массивам.

Так как нам достаточно просто получить список, без более глубоких джойнов, мы можем дообучить сущность специальным полем, который делал бы выборку не из m-таблицы (где все множественные значения содержатся в разделённом виде), а из s-таблицы (где массив сериализован и всё хранится вместе).

Получив сериализованное значение, мы его рассериализуем и в ключе VALUE будут нужные нам ID.

...и не придётся пересобирать цикл с fetch-ами

Читать статью:
https://burlaka.studio/lab/orm_multy_prop_direct_via_fake_entity/

#битрикс #orm #d7 #сущности