2016-10-16 4 views
2

私のextbase 6.2拡張では、ユーザーがselect-inputから何かを選択したいので、アイテムを使い方で並べ替える必要があります。
私は前にこれをやって、私のオブジェクトをソート: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 
    ); 

} 

しかし、今、私は参照の量によってそれらをソートしたい - と、その後自分の名前によって、第2の順序として。私は参照フィールドがどこにあるのか、その名前が何であるか分かりません - ここでバックエンドで見たことがあります:
References in Typo Backend
これを行う方法は誰にも分かりますか?

答えて

0

これらの参照は、テーブルsys_refindexにある、いわゆる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に少し背景:

だからカウントを取得するために、あなたはそうのように、sys_refindexを使用して、テーブルをLEFT JOINする必要がTYPO3は、その内部で、すべてのレコードの変更のアップデートを、ときに処理します公式のAPIを介して行われます(バックエンドフォームにレコードを保存する場合など)。

+0

レコードがFE(Extbase)で操作されている場合は、更新されますか?例えば。リレーションが追加され、再配置の 'update()'メソッドが呼び出されますか?あるいは、このタスクをCLI経由で実行する必要があります: 'typo3/cli_dispatch.phpsh lowlevel_refindex -e'? –

+0

また、これらが本当に 'sys_refindex'からの数値であって列自体からのものではないのは不思議です.bcs afaik TYPO3はリレーション数をリレーションフィールドに正確に格納します。だからreltaion番号でソートする作業のために 'sys_refindex'テーブルに参加する必要はないかもしれません。 –

関連する問題