Extbase删除控制器/存储库中的重复对象

时间:2018-05-08 19:13:10

标签: typo3 fluid extbase

我们从另一家公司接管了一个项目,需要更新他们的TYPO3。我们现在在最近的8.7.13。

有一个产品扩展程序可将产品,组和项目过滤到一个视图中。由于未知原因,以下输出2个产品,它们都是相同的:

public function findByObjekt($uid) {
    $query = $this->createQuery();

    $query->matching(
             $query->contains('objekte', $uid),
             $query->equals('objekte.hidden',0),
             $query->equals('objekte.deleted',0)
    );

    $query->getQuerySettings()->setRespectStoragePage(FALSE);
    $query->getQuerySettings()->setRespectSysLanguage(FALSE);
    return $query->execute();
}

在返回控制器输出之前,有没有办法删除重复的条目/对象?我检查了多个文档但找不到具有独特结果的方法(这是可能通常不需要...)。另一个想法是处理流体模板中的重复逻辑,但这是一个相当糟糕的解决方案,我猜。

1 个答案:

答案 0 :(得分:0)

我假设您在默认语言和一个本地化中拥有所需的记录。 使用extbase,原始语言记录及其所有本地化具有相同的标识符(uid),尽管它们在数据库中是不同的。 Extbase通常只能使用当前语言查找记录。

在您setRespectSysLanguage(FALSE)时,extbase不会按语言进行过滤。这就是你收到两条记录的原因。

为什么你将respectSysLanguage设置为false?