Yii2 GridView виджет, необходимо изменить порядок сортировки при нажатии

Мне нужна помощь с виджетом Yii2 GridView.
Проблема:
Если вы щелкнете по имени несортированного столбца, он будет отсортирован по умолчанию от минимального до максимального (например, SORT_ASC const в defaultOrder). Что я должен изменить, чтобы изменить порядок сортировки по клику, он должен быть от максимального до минимального (например, SORT_DESC).

Нет проблем с выбором порядка загрузки по умолчанию, мне нужно изменить порядок щелчков. Варианты сортировки dataProvider:

            'sort' => [
'attributes' => ['weekly_length','name', 'market','unique','sessions','retentions', 'session_length_summary',],
'defaultOrder' => ['weekly_length' => SORT_DESC],
],

1

Решение

Просто поменяйте порядок сортировки как: —

'sort' => [
'attributes' => [
'weekly_length' => [
'asc' => ['weekly_length' => SORT_DESC,],
'desc' => ['weekly_length' => SORT_ASC],
]
]
]
2

Другие решения

Вы можете использовать как ниже:

$dataProvider->setSort([
'attributes' => [
'weekly_length' => [
'asc' => ['weekly_length' => SORT_DESC],
'desc' => ['weekly_length' => SORT_ASC],

'defaultOrder' => ['weekly_length' => SORT_DESC]
],
]
]);
1