ActiveDataProvider сортировка по json

Вообщем у меня в yii2 есть запрос в котором идёт сортировка по json. Но он не работает,вот как выглядит запрос:

return new ActiveDataProvider([
    'query' => $query,
    'pagination' => false,
    'sort' => [
        'defaultOrder' => [
            new Expression("user_dictionary.workout_progress_card->>'" . $sort . "' ASC")
        ],
    ]
]);

Вообщем он выдаёт ошибку WHERE ("user_id"=$1) AND ("type"=$2) ORDER BY "0" Прошу помощи.


Ответы (1 шт):

Автор решения: Moonwolf45

Вообщем сделал куда проще просто добавил сортировку в $query что строится выше:

if (array_key_exists('sort', $filter) && $filter['sort'] != 'undefined' && $filter['sort'] != '') {
    $query->orderBy(new Expression("workout_progress_card->>'" . $filter['sort'] . "' ASC"));
}

return new ActiveDataProvider([
    'query' => $query,
    'pagination' => false,
]);
→ Ссылка