代码之家  ›  专栏  ›  技术社区  ›  Paolito75

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

  •  0
  • Paolito75  · 技术社区  · 8 年前

    我正在处理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();
    
    }
    

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

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

    2 回复  |  直到 8 年前
        1
  •  1
  •   Pravin Vavadiya    8 年前

    我想你忘了布景 StoragePid . 所以,首先检查 storagePid 是否设置。如果未设置,则先设置并清除 Install Tool 缓存并检查增益。

    用于设置StoragePid。

    -:转到主页>模板,然后转到常量编辑器并设置 StoragePID 第页的,包含您的记录。

        2
  •  0
  •   Cedric Ziel    8 年前

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

    Extbase存储库基于它们所查询的实体,这意味着它们不直接查询数据库,而是查询其持久性管理器 属性 您的实体。(这不是百分之百的准确,但它是一幅很好的图片)

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

    $query->getQuerySettings()->setRespectStoragePage(false);
    
    推荐文章