按特定值对子对象排序
Sort Childobjects by specific value
我目前正在尝试根据有效时间对我可以获得的所有子对象进行排序。
我当前的代码没有对任何东西进行排序:
$children = $this->productRepository->findByParent($product->getNumber());
foreach ($children as $child) {
//debug::debug($child->getvalidityPeriod());
$product->addChild($child);
}
正如在调试中看到的那样,$child->getvalidityPeriod() 用于获取所需的整数信息。我想,一定有一种方法可以按 validityPeriod 对这个对象数组进行排序,但我该如何管理呢?我是否需要创建一个新方法并在那里过滤它,或者我可以在 ForEach 循环之前使用一些东西吗?
伪喜欢:
$children = $this->productRepository->findByParent($product->getNumber());
ObjectSortFunction($children, 'getvalidityPeriod');
...and then for each...
如果有人能帮助我就太好了!
好吧,经过几次尝试,我有了一个解决方法,它也可以用作答案;)
我在我的 repo 中写了这个方法:
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();
}
我目前正在尝试根据有效时间对我可以获得的所有子对象进行排序。
我当前的代码没有对任何东西进行排序:
$children = $this->productRepository->findByParent($product->getNumber());
foreach ($children as $child) {
//debug::debug($child->getvalidityPeriod());
$product->addChild($child);
}
正如在调试中看到的那样,$child->getvalidityPeriod() 用于获取所需的整数信息。我想,一定有一种方法可以按 validityPeriod 对这个对象数组进行排序,但我该如何管理呢?我是否需要创建一个新方法并在那里过滤它,或者我可以在 ForEach 循环之前使用一些东西吗?
伪喜欢:
$children = $this->productRepository->findByParent($product->getNumber());
ObjectSortFunction($children, 'getvalidityPeriod');
...and then for each...
如果有人能帮助我就太好了!
好吧,经过几次尝试,我有了一个解决方法,它也可以用作答案;)
我在我的 repo 中写了这个方法:
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();
}