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

时间:2016-10-16 10:46:17

标签: typo3 extbase typo3-6.2.x

在我的extbase 6.2扩展中,我希望用户从select-input中选择一些东西,我希望按用途订购这些项目。
我之前对这些对象进行了排序:

/**
 * 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
    );

}

但是现在我想按引用量对它们进行排序 - 然后按照名字的顺序排序。我不知道引用字段在哪里或它的名字是什么 - 我刚才在后端看到它:
References in Typo Backend
有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

这些引用存储在所谓的refindex中,该索引位于表sys_refindex中。

为了得到计数,你需要使用sys_refindex LEFT JOIN你的表,如下所示:

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完成时(例如,在后端表单中保存记录时)。