typo3 – 通过子对象对元素进行排序

我有一个与类别有1:n关系的item对象.

让我们说类别是一个数值.

我尝试使用setOrderings()按类别对所有项目进行排序,但它不起作用.

//inside findAll() in my ItemRepository 
$query->setOrderings(array("item.categories" => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));

如何根据子对象类别获取查询以对所有项目进行排序?

编辑:示例

Item1有类别[1,2,8],Item2有类别[1,2,5]所以升序排序顺序为:Item2,Item1

最佳答案 我认为,

$query->setOrderings(array("item.categories" => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));

这里’item.categories’是一个数组变量,这就是它无法正常工作的原因.

因此,您必须在每个项目的项目对象内创建一个新元素(例如:item.categorie)(您根据最大类别编号排序,’item.categorie’的值应该是此最大类别编号).现在’item.categorie’将是一个正常变量,其值为5或8等…

然后,

$query->setOrderings(array("item.categorie" => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));

将工作…

点赞