UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: atach от 23 Мая 2017, 15:56:11

Название: UMI.Selector: выборка заказов только зарегистрированных пользователей
Отправлено: atach от 23 Мая 2017, 15:56:11
Добрый день, подскажите я делаю выборку заказов:
$orders = new selector('objects');
$orders->types('object-type')->name('emarket', 'order');
$orders->option("return", array("name", "id"));
$totalItems = $orders->length;
Вопрос такого характера, как можно произвести поиск только по заказам, которые оформлены зарегистрированными пользователями, т.е. к кого "customer_id", имеет type-guid="users-user".
Название: Re: UMI.Selector: выборка заказов только зарегистрированных пользователей
Отправлено: admin от 25 Мая 2017, 16:10:05
В одной выборке, скорее всего только прямым sql запросом.

Если говорить о решении в рамках API? то можно попробовать в 2 выборки (но если пользователей или заказов много, то не очень вариант)

$users= new selector('objects');
$users->types('object-type')->name('users', 'user');
$users->option("return", array("id"));
$user_ids = array();
foreach($users as $user){
    $user_ids[] = $user->id;
}
$orders = new selector('objects');
$orders->types('object-type')->name('emarket', 'order');
$orders->where('customer_id')->equals($user_ids);
$orders->option("return", array("name", "id"));
$totalItems = $orders->length;