数据库是这样
我想实现的sql是这样select *, sum(money) as sumMoney from table GROUP BY userId order by sumMoney desc
yii中是这样写的
$dataProvider = new ActiveDataProvider([
'query' => (new \yii\db\Query)->select(['*', 'sum(money) as sumMoney'])->from('za_shared_revenue_record')->groupBy('userId')->orderBy('sumMoney desc'),
]);
问题来了,这样的结果 dataProvider 是不对的,没法在 GridView 中使用 sumMoney 。
求大神出招,怎么在 GridView 中使用 sumMoney。
在model定义一个属性,作为虚字段使用。
1 派生yii\grid\DataColumn
类,派生类中重载init
函数,在init
函数中给$this->content赋值即可(当然实际操作上应该是在这里调用另一个随便什么自定义的函数)。例如如下代码片段:
2 在GridView中'columns'
属性中增加这个列,指明class为上述的派生类即可:
页面怎么实现的 在gridview外可以调用吗?