是否可以使用不使用列名的值进行排序?
例如,
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['id' => 100]]
]);
我知道我可以使用控制器或添加参数来轻松完成此操作,但我想使用search()
函数来执行此操作。
默认情况下,排序与列名一起使用,因此,我找到了按值排序的新解决方法。
答案 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')')