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

TYPO3 extension custom repository = empty result

我正在开发 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() 它有效,那么问题一定出在我的自定义代码上,而不是控制器或存储库上。

findByUid 总能找到您的实体,因为它绕过了任何其他限制。

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

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

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

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

用于设置 StoragePid。

-: 进入主页 > 模板,然后进入常量编辑器并设置 StoragePID 页面的记录。