Каким образом можно сделать фильтр по двум полям двух разных таблиц где одно поле типа список(массив).
Например, сделал
И вот department.UF_DEP_STOCK это список, при гет листе возвращается массив ID складов. Так вот как написать верно фильтр чтобы я сузил кол-во возвращаемых записей при помощи этого условия, так как в выборке результирующей идет перемножение таблиц и это не то что мне нужно. Как ORM обяснить что я хочу именно находить соответсвие по полям.
Следующая конструкция не помогла, видимо не понимает что там список(массив) и не может обработать его
Например, сделал
| Код |
|---|
$select=[
'*',
'department.UF_DEP_TYPE',
'store.AMOUNT',
'store.STORE_ID',
'stock'=> 'department.UF_DEP_STOCK'
];
$filter = [
'UF_ACTIVE' => true,
'department.UF_DEP_TYPE' => 6,
'>store.AMOUNT' => 0,
'store.STORE_ID' => 'department.UF_DEP_STOCK'
];
$query = new \Bitrix\Main\Entity\Query($entity_data_class_notification);
$query->registerRuntimeField('department', [
'data_type' => $entity_data_class,
'reference' => ['=this.UF_SITE_ID' => 'ref.UF_DEP_SITE'],
])->registerRuntimeField('store', [
'data_type' => '\Bitrix\Catalog\StoreProductTable',
'reference' => ['this.UF_GOOD_ID' => 'ref.PRODUCT_ID'],
])->setSelect($select)->setFilter($filter)->setOrder(['ID']);
|
И вот department.UF_DEP_STOCK это список, при гет листе возвращается массив ID складов. Так вот как написать верно фильтр чтобы я сузил кол-во возвращаемых записей при помощи этого условия, так как в выборке результирующей идет перемножение таблиц и это не то что мне нужно. Как ORM обяснить что я хочу именно находить соответсвие по полям.
Следующая конструкция не помогла, видимо не понимает что там список(массив) и не может обработать его
| Код |
|---|
->whereColumn('store.STORE_ID','department.UF_DEP_STOCK')
|