使用yii2 gridview在组内排序

时间:2018-06-04 12:13:03

标签: gridview yii2

示例数据:

╔═════╦══════════╦════╦════╦
║ Fo  ║ Bar      ║  Bar 2  ║
╠═════╬══════════╬═════════╬
║  6  ║     10   ║         ║
║  4  ║     110  ║         ║
║  3  ║     120  ║         ║
║  8  ║     140  ║         ║
║  3  ║     180  ║         ║
║  3  ║     190  ║         ║
╚═════╩══════════╩════╩════╩

输出:

╔═════╦══════════╦════╦════╦
║ Fo  ║ Bar      ║  Bar 2  ║
╠═════╬══════════╬═════════╬
║  3  ║     190  ║         ║
║  3  ║     180  ║         ║
║  3  ║     120  ║         ║
║  8  ║     140  ║         ║
║  4  ║     110  ║         ║
║  6  ║     10   ║         ║
╚═════╩══════════╩════╩════╩

我可以使用PostgreSql

对其进行排序
GROUP BY  "foo", "bar2" ORDER BY max("bar") OVER (PARTITION BY "foo") DESC

但我有可定制的报告,包含许多不同的列和组。拥有更灵活的解决方案会很不错。

Yii2可能有现成的解决方案吗?

1 个答案:

答案 0 :(得分:-1)

ModelSearch.php 文件中,在将参数加载到模型之前添加排序。例如;

   $dataProvider = new ActiveDataProvider([
   'query' => $query,
   'sort' => ['defaultOrder' => ['COLUMNNAME' => SORT_DESC]]
   ]);

    $this->load($params);