问题:我需要通过3个不同的标准对名为“锦标赛”的对象列表进行排序。
不。 3.是有问题的,因为CMS(pimcore)内容管理器需要以下顺序:Ps4-> Xbox-> PC,但是pimcore数据库是自动生成的,并且您不知道平台的ID,因此您不能始终依赖Ps4是第一个,等等。
部分解决方案:
在对象平台中创建一个字段“优先级”,内容团队可以通过该字段进入每个字段,然后选择1、2、3、4等。
对这些优先级字段(uasort)进行排序,然后根据平台的优先级显示比赛(Ps4-> Xbox-> PC,或者如果需要的话,反之亦然)。
代码:
$tournamentList = new Tournament\Listing();
$tournamentList->setCondition("start >= unix_timestamp(NOW() - INTERVAL 1 DAY)"); // fetch only not finished
$tournamentList->setOrder('ASC');
$platformList->getObjects();
$platformObject = $platformList->objects;
uasort($platformObject, function($a, $b) {
if ($a->getPriority() == $b->getPriority()) {
return 0;
}
return ($a->getPriority() > $b->getPriority()) ? +1 : -1;
});
foreach ($platformObject as $platform) {
$priority = $platform->getPriority();
}
$tournamentList->setOrderKey([
"start",
"game__id",
]);
这是我遇到的问题,是的,我过滤了输入内容,现在有1、2、3,但是如何根据平台和优先级对比赛进行排序?!