Использование класса Document с PHPCR-ODM, можно получить результаты с помощью репозитория классов, результаты автоматически сортируются по полю sort_order
это не в классе Document, но в схеме базы данных.
Пример запроса, зарегистрированного в Symfony Profiler:
SELECT path FROM phpcr_nodes WHERE parent = ? AND workspace_name = ? ORDER BY sort_order ASC
У меня есть этот простой запрос, построенный с помощью queryBuilder:
$qb->from()
->document('AppBundle\Document\Product', 'product')
->end()
->where()
->neq()->field('product.type')->literal('category');
$query = $qb->getQuery();
Результат не отсортирован по полю sort_order
как и другие запросы, и я не могу использовать orderBy
Метод, поскольку это не поле класса Document.
Итак, как я могу отсортировать результаты?
Кто сказал, что вы не можете использовать orderBy()
? Вам следует читать документы потому что, конечно, это возможно. Используя тот же код и предполагая, что столбец сортировки sort_order
увидеть ниже:
$qb->from()
->document('AppBundle\Document\Product', 'product')
->end()
->where()
->neq()->field('product.type')->literal('category')
->orderBy()->desc()->field('product.sort_order');
Других решений пока нет …