KnpPaginatorBundle сортирует коллекцию Doctrine ArrayCollection

Допустим, у меня есть объект A со столбцами ID, foo и bar, которые являются строками, целыми числами или объектами DateTime. Этот объект имеет все стандартные геттеры, такие как getId(), getFoo() и getBar().

В моем контроллере у меня есть объект, принадлежащий другому объекту с именем B. Связь между B и A — один ко многим. Функция getAllA() находит все A, связанные с B, которые возвращают Doctrine ArrayCollection. Итак, с объектом в контроллере я вызываю

$paginator = $this->get('knp_paginator');
$paginatedObject = $paginator->paginate(
            $object->getAllA(),
            $this->get('request')->query->get('page', 1),
            3

Теперь нумерация страниц работает нормально, но как сортировать? В строке заголовка таблицы у меня есть

{{ knp_pagination_sortable(paginatedObject, 'ID', '???????????????') }}

но что там за вопросительные знаки?


person No_name    schedule 30.01.2014    source источник


Ответы (1)


Вы можете использовать запрос DQL, например

'SELECT o FROM AcmeBundle:Object o'

и тогда третий параметр будет "o.id"

источник

person Vail    schedule 30.01.2014
comment
Мне не очень нравится это решение, так как оно требует написания большего количества кода, но, по крайней мере, оно работает. Кто-то должен обновить документацию и сказать, что сортировка НЕ ​​работает для массива/ArrayCollection. - person No_name; 31.01.2014