【问题标题】:Query on TYPO3 IRRE property查询 TYPO3 IRRE 属性
【发布时间】:2021-12-17 18:17:03
【问题描述】:

我使用扩展构建器创建了一个新扩展,其中包括一些表和一些表之间的内联关系。

对于报告,我需要一些查询,其中选择条件基于相关记录。

在这里我很难获取数据(除了做原始查询,这似乎是错误的)。

  1. 尝试:
    查询相关记录,提取父记录uid的字段。
    问题:查询结果中没有父记录uid的字段(虽然它在数据库中)。
    这是可以理解的,因为没有获取/设置关系的方法。 (但如果我插入这些方法,它不会改变。)
    同样在 children 记录中,除了以下关系之外,没有 TCA 定义:
        'parent' => [
            'config' => [
                'type' => 'passthrough',
            ],
        ],

这可能是该字段即使插入到showitem 列表中也无法显示在记录中的原因。

  1. 尝试:
    从父记录进行联接。
    在这里,我还没有找到任何如何构建连接的示例。
    查询还有其他可能性,但最明显的是在父记录存储库中:
public function getParentsByFilter($mainCondition,$subCondition) {
  $parentQuery = $this->createQuery();
  $parentQuery->matching(
     $parentQuery->logicalAnd(
        $parentQuery->equals('parent_field',$mainCondition)
//      $childQuery->equals('children_field',$subCondition)
     )
  );
// $parentQuery->joinTable('tx_myext_domain_model_children', ...)
  $parentQuery->setOrderings(['crdate'=> QueryInterface::ORDER_DESCENDING]);
  $parentQuery->getQuerySettings()->setRespectStoragePage(false);
  return $parentQuery ->execute();
}

这里我不知道如何加入 children 表。
我希望有一些方法,比如注释行,但还没有找到类似的方法。

【问题讨论】:

    标签: sql join typo3 relation typo3-10.x


    【解决方案1】:

    与表sys_category 中相同的配置有何不同?

    【讨论】:

    • @Bernd Wilke πφ 这里的问题是,如果你想有几个父母(在同一级别上),就像你将你的函数命名为 getParentsByFilter。然后它变得越来越复杂(并且与 TYPO3 相关不常见)。
    • 我使用了parents,因为有多个记录可能与过滤器匹配。每个孩子只有一个特定的父母。
    • 好的,没什么特别的 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2021-11-20
    相关资源
    最近更新 更多