在yii2 gridview中显示关系表属性值的总和

时间:2015-07-24 10:14:25

标签: gridview yii2

我有2个DB表,关系为1-n:任务和活动。任务可以关联N个活动,每个活动包含一个"小时"属性。 在"任务"的网格视图中,对于每个条目,我想显示"小时"的总和。相关活动。有可能吗?

谢谢

的Alessandro

1 个答案:

答案 0 :(得分:0)

您可以在模型中添加一个getter:

public function getActivityHourSum()
{
    return $this->getActivities()->sum('hours');
}

而不是GridView:

'columns' => [
    ...
    'activityHourSum',
    ...
]

这种方式最简单但效率较低。 另一种方法是将$ activityHourSum属性添加到模型类,并使用连接关系表在搜索方法中填充其值。