Yii CDbCriteria подсчет связанных строк

У меня есть модель Product (id, name, …) и модель OrderItem (id, order_id, product_id), и я хочу отсортировать товары по количеству продаваемых товаров, которые я могу получить из модели OrderItem.

Проблема в том, что в yii отношение STAT находится в отдельном запросе, поэтому я не могу отсортировать его в CDbCriteria. Как я могу поместить этот запрос в CDbCriteria?

-1

Решение

Вы пытались сделать соединение по cdbcriteria, а затем упорядочить по?

Нечто подобное может сработать:

<?php

$criteria->mergeWith([
'join' => ' INNER JOIN (SELECT COUNT(*) as qty, product_id FROM OrderItem oi GROUP BY product_id) oiInner ON oiInner.product_id=t.product_id',
'order' => ' oiInner.qty DESC'
]);

Как-то так должно работать!
Не забудьте добавить это как опцию сортировки в опциях сортировки DataProvider!

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector