问题描述
我目前正在尝试按有效时间对我可以获得的所有子对象进行排序。
我当前的代码未对任何内容进行排序:
$children = $this->productRepository->findByParent($product->getNumber());
foreach ($children as $child) {
//debug::debug($child->getvalidityPeriod());
$product->addChild($child);
}
在调试中已经可以看到,$ child-> getvalidityPeriod()可以获取所需的整数信息。我认为,必须有一种方法可以根据其validationPeriod对该对象数组进行排序,但是我该如何管理呢?我需要创建一个新方法并在那里进行过滤吗?还是可以在ForEach循环之前使用某些方法?
伪像:
$children = $this->productRepository->findByParent($product->getNumber());
ObjectSortFunction($children,'getvalidityPeriod');
...and then for each...
如果有人能帮助我,那将太棒了!
解决方法
好几次尝试后,我都有一种解决方法,也可以用作答案;)
我在回购中编写了此方法:
public function findByParentSorted($parentId)
{
$query = $this->createQuery();
$query->matching($query->equals('parent',$parentId));
$query->setOrderings(
[
'validity_period' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
]
);
return $query->execute();
}