Yii - использование поля предложения MySQL AS

Допустим, я хочу предоставить CActiveDataProvider для CGridView. Мне нужно поставить SUM(invitesCount) AS invites в результат провайдера. Как получить это? Я думаю, я не могу просто использовать $dataProvider->invites?

2 ответа

Решение

Вы должны указать следующее в ваших отношениях invites

'invites '=>array(self::BELONGS_TO, 'CampaignFund', 'campaign_id', 'select' => 'SUM(invitesCount)'),

и используйте это отношение в ваших критериях.

Несколько других вариантов:

  1. Используйте CStatRelation

    invitesCount=>array(self::STAT,'Invites','foreign_key_field');
    
  2. Добавление общественной собственности может работать. Однако поле будет установлено, только если вы изменили запрос поиска по умолчанию, чтобы включить это новое условие. Это может быть сделано путем переопределения defaultScope() или создание нового scope и использовать его всякий раз, когда invitesCount необходимо.

  3. Другой вариант - создать представление базы данных из требуемого запроса и создать новую модель из этого представления базы данных.

Другие вопросы по тегам