如何在yii2中按值设置默认排序?

时间:2016-01-29 12:46:18

标签: php sorting yii yii2

是否可以使用不使用列名的值进行排序?

例如,

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

我知道我可以使用控制器或添加参数来轻松完成此操作,但我想使用search()函数来执行此操作。

默认情况下,排序与列名一起使用,因此,我找到了按值排序的新解决方法。

1 个答案:

答案 0 :(得分:2)

您可以使用setSort

    $dataProvider->setSort([
         'defaultOrder' => [ 'id' => SORT_ASC],
    ]);

否则您的请求不符合此格式,因为它不基于列数组和order_type。

您可以尝试覆盖此设置 - > orderBy('FIELD(id,'100','300','500')');

$dataProvider->query->orderBy(' FIELD(id, '100', '300', '500')')