Сортировка в OctoberCMS (простая и по формуле)

Научимся выводить модель с сортировкой и использованием JSON

На самом деле сортировка в OctoberCMS очень простая:

    orderBy('name desc')

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

    orderByRaw('votes / population DESC')

Очень логично! Добавим что votes это обычное свойство, а population это JSON свойство. Тогда нужно просто обозначить его

    select('id', 'name', 'options->population as population')

Где полный запрос будет выглядеть следующим запросом:

City::has('image')->where('votes', '>', 100)
        ->select('id', 'name_ru', 'options->population as population')
        ->orderByRaw('votes / population DESC')
        ->limit(6)
        ->get();

То есть выодит 6 городов с заполненной картинкой, у которой количество голосов > 100, с сортировкой как указано выше.


Опубликовано 27 февраля 2022 г. в категориях: October CMS Winter CMS

Если Вам необходимо внедрить данную разработку на свой проект, свяжитесь со мной, обсудим цену и срок.

Связаться со мной Fill 1