在CGridView中使用Yii关系中的分组聚合SQL

时间:2012-02-11 18:17:07

标签: gridview yii relational-database

我正在尝试做一些与thomas.mery发布的非常相似的内容,但无法使其正常工作,这是代码,你能看到我做错了什么吗?

我有这些表格:

  • 事件
    -id

  • invitation_code
    -code
    -event(fk指向event.id)

事件模型具有以下关系:
'InvitationCodes' => array( self::HAS_MANY, 'InvitationCode', 'event' )

我将此添加到由Gii生成的Event :: search()中:
$criteria->with = array( 'InvitationCodes' => array( 'select' => 'COUNT(*) as qtty' ) );
$criteria->together = true;
$criteria->group = 't.id';

然后在CGridView of Events中,我想显示qtty字段,所以我在列中包含:
'InvitationCodes.qtty'

该列带有标题,但没有值。我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以向您的InvitationCodes模型添加公共属性$ qtty,并通过$ theResultRow-> InvitationCodes-> qtty(或类似字符串的InvitationCodes.qtty)获取值

但在您的情况下,使用统计查询关系要好得多:http://www.yiiframework.com/doc/guide/1.1/en/database.arr#statistical-query