2016-10-28 3 views
1

У меня есть расширение TYPO3 с двумя образцами, Member и Category и отношением M: M между этими моделями. Теперь я пишу специальный метод репозитория findByCategoryUid, чтобы получить участников, отсортированных по дате.Как сортировать хранилище extbase Объекты по mm.sorting

Как я могу сортировать/заказывать объекты-участники по полю tx_***member_membercategory_mm.sorting?

Этот не работает.

$query->setOrderings(
    array('tx_***_member_membercategory_mm.sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING) 
); 

ответ

1

При работе с репозиториями/запросами Extbase вы должны забыть о таблицах mysql и просто посмотреть на свои модели. Чтобы отсортировать по соответствующей области, вы должны использовать свои поля модели. Если ваши категории находятся в поле category в модели Member, вам необходимо использовать category.sorting в качестве поля сортировки. То же самое касается фильтрации в запросе.

$query->setOrderings(
    array('category.sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING) 
); 

Он работает только в том случае, если вы правильно настроили TCA и ваши модели.

+0

Это неправильный путь. Я переношу свой простой SQL-запрос на использование методов репозитория. Мой запрос выглядит как 'Select Member. * FROM Member, Member_Cat_MM, Category WHERE Member.uid = Member_Categoy_MM.uid_local и Category.uid = Member_Category_MM.uid_foreign = Category.uid GROUP BY Member.uid ORDER BY Member_Category_MM.sorting ASC' –

 Смежные вопросы

  • Нет связанных вопросов^_^