我有一个item
对象与categories
的 1:n 关系。
让我们说类别是一个数值。
我尝试使用setOrderings()按类别对所有项目进行排序,但它不起作用。
//inside findAll() in my ItemRepository
$query->setOrderings(array("item.categories" => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));
如何根据子对象categories
获取查询以对所有项目进行排序?
编辑:示例
Item1有类别[1,2,8],Item2有类别[1,2,5]所以升序排序顺序为:Item2,Item1
答案 0 :(得分:2)
我想,
$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));
会工作......