Yii2网格:按计算的数值或公式列排序

时间:2018-06-08 11:49:03

标签: php gridview yii2

我正在使用GridView(由Gii生成)和ActiveRecord。假设我有一个名为“number”的列表。我在模型中添加了一个函数,它是这样的:

public function getCos()
{
return cos($this->number);
}

我看不出我应该如何对这样的列进行排序,数值计算值不仅仅是两列的串联,如下所述:

https://www.yiiframework.com/wiki/621/filter-sort-by-calculatedrelated-fields-in-gridview-yii-2-0

可以在视图中计算值而不是模型:

'value'=>function($model, $key, $index, $widget){return cos($model->number);

但问题是一样的,我看不出如何对这种列进行排序。

谢谢。

1 个答案:

答案 0 :(得分:0)

按照您提到的指南,但为数据提供者添加一个属性,如下所示:

'the_cosine' => [
    'asc' => 'COS(number) ASC',
    'desc' => 'COS(number) DESC',
]

允许您对数据库级别进行排序。