defaultOrder , anahtarın bir sütun adı ve değerin bir sütun adı olduğu bir dizi içerir SORT_DESCveya SORT_ASCbu nedenle aşağıdaki kod çalışmaz.
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Doğru yol
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'topic_order' => SORT_ASC,
]
],
]);
Not: Bir sorgu zaten orderBy yan tümcesini belirtiyorsa, son kullanıcılar tarafından verilen yeni sıralama talimatları (sıralama yapılandırması aracılığıyla) mevcut orderBy yan tümcesine eklenecektir. Son kullanıcılardan gelen sayfalandırma talebi (sayfalandırma yapılandırması yoluyla) mevcut tüm sınır ve mahsup cümlelerinin üzerine yazılacaktır.
Yii2 Veri Sağlayıcı Kılavuzundan ayrıntılı bilgi edinebilirsiniz
Sıralama nesnesini sorguda geçirerek sıralama
$sort = new Sort([
'attributes' => [
'age',
'name' => [
'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Name',
],
],
]);
$models = Article::find()
->where(['status' => 1])
->orderBy($sort->orders)
->all();