说我有一个extbase扩展名,其父对象“ foo”与子对象“ bar”的关系为m:n。每个“ bar”对象都有一个整数属性“ barNum”。我想对我的“ foo”对象进行排序,其中包含“ barNum”值最低的“ bar”对象。我该怎么办?
我可以按foo对象的字段排序:
class FooRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
protected $defaultOrderings = [
'fooField' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
];
}
但是我看不到按与m:n相关的子对象的字段排序的任何方法
澄清:例如,如果我的数据如下:
"foos": {
"foo1": {
"bars": {
"bar1": {
"barNum": 31
},
"bar2": {
"barNum": 42
}
}
},
"foo2": {
"bars": {
"bar3": {
"barNum": 82
},
"bar4": {
"barNum": 19
}
}
},
"foo3": {
"bars": {
"bar5": {
"barNum": 37
}
}
}
}
我希望它对foo2,foo1,foo3进行排序,因为19 <31 <37。
您可以使用.
按子对象和属性排序,例如fooFieldWithObject.barField
。
根据您的情况,我会尝试:bars.barNum
class FooRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
protected $defaultOrderings = [
'bars.barNum' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
];
}