2016-10-28 4 views
1

私は、このモデル間にMemberCategoryという2つのモデルとM:Mの関係を持つTYPO3拡張を持っています。 ここでは、特別なリポジトリメソッドfindByCategoryUidを作成して、日付でソートされたメンバーを取得します。mmssortingでextbaseリポジトリオブジェクトを並べ替える方法

会員オブジェクトをフィールドtx_***member_membercategory_mm.sortingでソート/オーダーする方法はありますか?

この1つは機能しません。

$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とCategory.uid = Member_Category_MM.uid_foreign = Category.uid GROUP BY Member.uid ORDER BY Member_Category_MM.sorting ASC' –

関連する問題