我有一个与类别有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));
将工作…