TYPO3扩展自定义存储库=空结果

时间:2018-01-02 14:28:35

标签: typo3 typo3-6.2.x typo3-extensions

我正在使用Typo3 6.2,下面是我的控制器的摘录:

    $event_to_display = $this->eventRepository->findByCustom();
    $this->view->assign('event', $event_to_display);

这是我的自定义存储库:

public function findByCustom()
{

    $query = $this->createQuery();
    $query->matching($query->equals('sys_language_uid', 0));
    return $query->execute();

}

但结果是空的!我相信我的$ query-> equals()操作不起作用,但我不明白为什么。因此,我想补充第二个条件:怎么做?

编辑:如果我使用findByUid()它可以工作,那么问题必须位于我的自定义代码上,而不是控制器或回购。

2 个答案:

答案 0 :(得分:1)

我想你忘记了集StoragePid。因此,首先检查storagePid是否已设置。如果未设置,则先将其设置并清除Install Tool缓存并检查增益。

对于设置的StoragePid。

- :转到主页>模板,然后转到常量编辑器并将StoragePID页面与您的记录一起设置。

答案 1 :(得分:0)

findByUid将始终找到您的实体,因为它会绕过任何其他约束。

Extbase存储库基于他们查询的实体,这意味着他们不会直接查询数据库,而是查询实体的属性的持久性管理器。 (这不是100%准确,但它可以作为一张好照片)

要从不同的语言中获取实体(因为您的代码在字段中查询),您应该使用QuerySettings来修改目标语言约束:

$query->getQuerySettings()->setRespectStoragePage(false);