Size: a a a

2019 December 25

S

Sergey in OctoberCMS
посмотрите scope
источник

D

Dmitriy in OctoberCMS
Сортировать нужно по связанной модели many-to-many. Через scope получится сделать такую выборку?
источник

D

Dmitriy in OctoberCMS
И еще забыл написать, что нужно использовать имеено класс QueryBuilder, так как на него завязан остальной код. Поэтому через Collection тоже не получается пересобрать выборку ((
источник

ЛА

Лже Артемий in OctoberCMS
Dmitriy
И еще забыл написать, что нужно использовать имеено класс QueryBuilder, так как на него завязан остальной код. Поэтому через Collection тоже не получается пересобрать выборку ((
через КвериБилдер еще легче. Можно orderByRaw использовать https://laravel.com/docs/5.5/queries#raw-methods
источник

D

Dmitriy in OctoberCMS
В нем же только ASC и DESC можно использовать, а нужна последовательность из массива...
источник

D

Dmitriy in OctoberCMS
я не силен в сложных запросах, может быть можно как-то связать айдишники модели с массивом и отсортировать по нему?
источник

ЛА

Лже Артемий in OctoberCMS
я лично до конца не понимаю задачу, опишите подробнее, больше данных нужно
источник

D

Dmitriy in OctoberCMS
В общем, проект делал не я, попросили доработать. Написан с 0 (и очень криво), без использования шопоголика или прочих плагинов магазинов.  Есть каталог с товарами, у товаров есть бренды и прочие свойства. Заказчих хочет выводить в каталоге определенный бренд выше всех остальных, но так как БД наполняется из 1С нельзя применить сортировку для брендов. Усложняется все тем, что на фронте используется собственный аякс (не October'овский), и пагинация, завязанная на QueryBuilder, поэтому выборку надо отсортировать именно в нем...
источник

ЛА

Лже Артемий in OctoberCMS
Dmitriy
В общем, проект делал не я, попросили доработать. Написан с 0 (и очень криво), без использования шопоголика или прочих плагинов магазинов.  Есть каталог с товарами, у товаров есть бренды и прочие свойства. Заказчих хочет выводить в каталоге определенный бренд выше всех остальных, но так как БД наполняется из 1С нельзя применить сортировку для брендов. Усложняется все тем, что на фронте используется собственный аякс (не October'овский), и пагинация, завязанная на QueryBuilder, поэтому выборку надо отсортировать именно в нем...
как задаются бренды для топа?
источник

D

Dmitriy in OctoberCMS
нужно захардкодить один бренд )
источник

АС

Алексей Созонов in OctoberCMS
Dmitriy
нужно захардкодить один бренд )
QueryBuilder тебе должен вернуть Collection. Забери из нее нужный тебе бренд и поставь в самом начале
источник

D

Dmitriy in OctoberCMS
По сути да, но с дополнительными методами, которые Collection не поддерживает. Есть, конечно, DataFeed, но он тоже не подходит, так как в нем тоже не все методы  QueryBuilder'а есть
источник

АС

Алексей Созонов in OctoberCMS
Collection можно перебрать через foreach
источник

АС

Алексей Созонов in OctoberCMS
и проверить соответствует ли бренд у товара нужному
источник

D

Dmitriy in OctoberCMS
Да это понятно ) Просто как из коллекции обратно получить QueryBuilder? Я надеялся, что может быть есть какой-то способ вроде Laravel'овского sortBy,  но видимо так просто все не решится (
источник

АС

Алексей Созонов in OctoberCMS
а зчем его снова получать?
источник

D

Dmitriy in OctoberCMS
там остальной код на него завязан
источник

АС

Алексей Созонов in OctoberCMS
так а в конце что отдается в итоге?
источник

D

Dmitriy in OctoberCMS
не хотел много перепиывать ) но наверно придется
источник

D

Dmitriy in OctoberCMS
Алексей Созонов
так а в конце что отдается в итоге?
QueryBuilder
источник