Yii - использование поля предложения MySQL AS
Допустим, я хочу предоставить CActiveDataProvider для CGridView. Мне нужно поставить SUM(invitesCount) AS invites
в результат провайдера. Как получить это? Я думаю, я не могу просто использовать $dataProvider->invites
?
2 ответа
Вы должны указать следующее в ваших отношениях invites
'invites '=>array(self::BELONGS_TO, 'CampaignFund', 'campaign_id', 'select' => 'SUM(invitesCount)'),
и используйте это отношение в ваших критериях.
Несколько других вариантов:
Используйте CStatRelation
invitesCount=>array(self::STAT,'Invites','foreign_key_field');
Добавление общественной собственности может работать. Однако поле будет установлено, только если вы изменили запрос поиска по умолчанию, чтобы включить это новое условие. Это может быть сделано путем переопределения
defaultScope()
или создание новогоscope
и использовать его всякий раз, когдаinvitesCount
необходимо.Другой вариант - создать представление базы данных из требуемого запроса и создать новую модель из этого представления базы данных.