defaultOrder , anahtarın bir sütun adı ve değerin bir sütun adı olduğu bir dizi içerir SORT_DESC
veya SORT_ASC
bu 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();