2016-10-28 119 views
1

我有一个TYPO3扩展与两个模型,MemberCategory和这些模型之间的M:M关系。 现在我编写一个特殊的存储库方法findByCategoryUid以获取按日期排序的成员。如何排序extbase存储库对象由mm.sorting

如何根据字段tx_***member_membercategory_mm.sorting排序/排序成员对象?

这一个dosn't工作。

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

回答

1

在使用Extbase存储库/查询时,您应该忘记mysql表,然后查看您的模型。要按相关字段排序,您必须使用模型字段。如果您的类别位于Member模型的category字段中,则需要使用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 and Category.uid = Member_Category_MM.uid_foreign = Category.uid GROUP BY Member.uid ORDER BY Member_Category_MM.sorting ASC' –

相关问题