Виртуальные аттрибуты в CActiveDataProvider

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
KEFIR4UK
Сообщения: 97
Зарегистрирован: 2014.12.13, 16:24

Виртуальные аттрибуты в CActiveDataProvider

Сообщение KEFIR4UK »

Добрый день. Столкнулся с проблемой присвоения результатов виртуальным атрибутам.
Суть проблемы:
Есть модель в которой имееться 4 виртуальные аттрибуты, ети аттрибуты нужно вывести в гриде.
Проблема в том, что первым двом результаты присваиваються, остальным двум нет. Подозреваю это через то что результаты для етих атрибутов беруться с подзапросов:

Код: Выделить всё

 $criteria = new CDbCriteria();
         $criteria->select = [
             'CONCAT(manager.first_name, " ", manager.last_name) AS managerName',
             'COUNT(countSumOrderItem.id) as productItems',
             'SUM(countSumOrderItem.cart_price) as productsSum',
             '(
                SELECT COUNT(itemCountHistory.id) FROM {{orderitem_status_history}} as itemCountHistory
                JOIN  {{order_status_history}} as orderCountHistory ON  orderCountHistory.order_id = itemCountHistory.order_id
                WHERE itemCountHistory.status_id = 13 AND itemCountHistory.manager_id = t.manager_id
                AND orderCountHistory.status_id = orderHistory.status_id
              ) as productItemsSale',
             '(
                SELECT SUM(orderItem.cart_price) FROM {{orderitem_status_history}} as itemSumHistory
                JOIN  {{order_status_history}} as orderSumHistory ON  orderSumHistory.order_id = itemSumHistory.order_id
                JOIN  {{order_item}} as orderItem ON orderItem.id = itemSumHistory.order_item_id
                WHERE itemSumHistory.status_id = 13 AND itemSumHistory.manager_id = t.manager_id
                AND orderSumHistory.status_id = orderHistory.status_id
              ) as productsSumSale'
             ];

Атрибуты productItemsSale и productsSumSale пустые, точнее null, хотя через простой sql все работает.
Где тупинг?)
Ответить