Typo3 如何使用Extbase 6.2按引用量对对象进行排序

Typo3 如何使用Extbase 6.2按引用量对对象进行排序,typo3,extbase,typo3-6.2.x,Typo3,Extbase,Typo3 6.2.x,在我的extbase 6.2扩展中,我希望用户从选择输入中选择一些内容,我希望这些项目按使用情况排序。 我在执行此操作之前对对象进行了排序: /** * The repository for Expertises */ class ExpertiseRepository extends \TYPO3\CMS\Extbase\Persistence\Repository { // Order by BE sorting protected $defaultOrderings

在我的extbase 6.2扩展中,我希望用户从选择输入中选择一些内容,我希望这些项目按使用情况排序。
我在执行此操作之前对对象进行了排序:

/**
 * The repository for Expertises
 */
class ExpertiseRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {

    // Order by BE sorting
    protected $defaultOrderings = array(
        'name' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
    );

}
但现在我想按引用的数量对它们进行排序,然后按它们的名称进行第二次排序。我不知道引用字段在哪里,或者它的名称是什么-我刚刚在这里的后端看到它:


有人知道怎么做吗?

这些引用存储在所谓的refindex中,它位于表
sys\u refindex

因此,要获得计数,您需要使用sys\u refindex左连接表,如下所示:

SELECT t.uid, …, COUNT(*) AS refcount
FROM tx_myext_table t
  LEFT JOIN sys_refindex ri
    ON t.uid = ri.recuid AND ri.tablename = "tx_myext_table"
GROUP BY ri.uid, ri.tablename

关于refindex:TYPO3的一点背景知识:当通过官方API(例如,在后端表单中保存记录)进行更改时,它会在内部处理并在每次记录更改时进行更新。

如果通过FE(Extbase)操作记录,它也会被更新。例如,添加关系并调用repository
update()
方法?或者需要通过CLI运行此任务:
typo3/CLI\u dispatch.phpsh lowlevel\u refindex-e
?此外,我很好奇这些是否真的是来自
sys\u refindex
的数字,而不是来自列本身,bcs afaik typo3将关系数准确地存储在关系字段中。因此,对于按相对数排序的任务,可能不需要加入
sys\u refindex
表。