Добрых суток, Нужно список вывести по " hero_win_rate" кто на первом месте и тд,
ломаю голову как отсортировать json поле.
Hero::orderBy(hero_count_wins, 'desc')->orderBy(hero_win_rate, 'desc')->get();
так сортируются поля в таблице понятно,
а как отсортировать поле c расширением json с объектом в нем: {"hero1":[{"name_hero":"KOLOBOK","win_rate":"54%"}],"hero2":[{"name_hero":"ZAIKA","win_rate":"50%"}]}
где мне надо будет по win_rate сортировать
надо как то зайти в json поле каждого юзера отсортировать и отдать))) со всеми полями другими id ... думал на фронтенде это сделать безуспешно(
Просто не хочется кучу полей делать для каждого героя и их значений их много)
для каждого юзера тоже не хочется создавать 25 героев к примеру, Как бы вы сделали у вас приходит стата героев и их надо обновлять каждому юзеру и выводить первого юзера и тд по количеству побед? на Laravel
так же сортирует по ид юзера
Видимо я не так делаю где return я так понимаю надо найти ключ значения в моем джейсоне, collect('KOLOBOK')->sum('win_rate'); это что не то ) поле джейсона у меня такое как тут выбоку сделать ?
'{"hero1":[{"name_hero":"KOLOBOK","win_rate":"54%"}],"hero2":[{"name_hero":"ZAIKA","win_rate":"50%"}],"hero3":[{"name_hero":"PLAYER","win_rate":"85%"}]}';
Можно попробовать еще на уровне БД https://laravel.com/docs/5.4/queries#json-where-clauses по аналогии.
Только нужно, чтобы поле было json. Поддержка появилась с недавних версий.
Иначе уже потом результаты сортировать по коллекции, как вам выше написали