我正在使用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);
但问题是一样的,我看不出如何对这种列进行排序。
谢谢。
答案 0 :(得分:0)
按照您提到的指南,但为数据提供者添加一个属性,如下所示:
'the_cosine' => [
'asc' => 'COS(number) ASC',
'desc' => 'COS(number) DESC',
]
允许您对数据库级别进行排序。