Sorting 如何按mm排序对extbase存储库对象进行排序

Sorting 如何按mm排序对extbase存储库对象进行排序,sorting,repository,typo3,extbase,Sorting,Repository,Typo3,Extbase,我有一个TYPO3扩展,它有两个模型,Member和Category以及这两个模型之间的M:M关系。 现在,我编写了一个特殊的存储库方法findByCategoryUid,以按日期对成员进行排序 如何按字段tx\u***Member\u membercategory\u mm.排序对成员对象进行排序/排序 这个不行 $query->setOrderings( array('tx_***_member_membercategory_mm.sorting' => \TYPO3\C

我有一个TYPO3扩展,它有两个模型,
Member
Category
以及这两个模型之间的M:M关系。 现在,我编写了一个特殊的存储库方法
findByCategoryUid
,以按日期对成员进行排序

如何按字段
tx\u***Member\u membercategory\u mm.排序对成员对象进行排序/排序

这个不行

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

在使用Extbase存储库/查询时,您应该忘记mysql表,只看一下您的模型。要按相关字段排序,必须使用模型字段。如果您的类别位于
成员
模型的
类别
字段中,则需要使用
类别.排序
作为排序字段。查询中的过滤也是如此

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

只有在正确配置TCA和模型的情况下,它才有效。

这是错误的方法。我将使用存储库方法将我的纯SQL查询移植到。我的查询看起来像
Select Member.*从Member,Member\u Cat\u MM,Category WHERE Member.uid=Member\u Categoy\u MM.uid\u local和Category.uid=Member\u Category\u MM.uid\u foreign=Category.uid按成员分组。uid按成员排序\u Category\u MM.ASC