是否可以使用不使用列名的值进行排序?
例如
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['id' => 100]]
]);
我知道我可以使用控制器或添加参数轻松做到这一点,但我想使用search()
函数来做到这一点。
默认情况下,排序与列名一起使用,因此,我正在寻找按值排序的新解决方法。
您可以使用 setSort
$dataProvider->setSort([
'defaultOrder' => [ 'id' => SORT_ASC],
]);
否则,您的请求不满足此格式,因为 in 不基于列和order_type数组。
您可以尝试使用 ->orderBy(' 字段(id, '100', '300', '500')') 覆盖此设置;
$dataProvider->query->orderBy(' FIELD(id, '100', '300', '500')')