defaultOrder berisi larik di mana kuncinya adalah nama kolom dan nilainya adalah a SORT_DESC
atau SORT_ASC
karena itulah kode di bawah ini tidak berfungsi.
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Jalan yang benar
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'topic_order' => SORT_ASC,
]
],
]);
Catatan: Jika kueri sudah menentukan klausa orderBy, instruksi pengurutan baru yang diberikan oleh pengguna akhir (melalui konfigurasi pengurutan) akan ditambahkan ke klausa orderBy yang ada. Klausa batas dan offset yang ada akan ditimpa oleh permintaan pagination dari pengguna akhir (melalui konfigurasi pagination).
Anda dapat mempelajari detailnya dari
Yii2 Guide of Data Provider
Mengurutkan Dengan meneruskan objek Sortir dalam kueri
$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();