【发布时间】:2021-12-17 18:17:03
【问题描述】:
我使用扩展构建器创建了一个新扩展,其中包括一些表和一些表之间的内联关系。
对于报告,我需要一些查询,其中选择条件基于相关记录。
在这里我很难获取数据(除了做原始查询,这似乎是错误的)。
- 尝试:
查询相关记录,提取父记录uid的字段。
问题:查询结果中没有父记录uid的字段(虽然它在数据库中)。
这是可以理解的,因为没有获取/设置关系的方法。 (但如果我插入这些方法,它不会改变。)
同样在 children 记录中,除了以下关系之外,没有 TCA 定义:
'parent' => [
'config' => [
'type' => 'passthrough',
],
],
这可能是该字段即使插入到showitem 列表中也无法显示在记录中的原因。
- 尝试:
从父记录进行联接。
在这里,我还没有找到任何如何构建连接的示例。
查询还有其他可能性,但最明显的是在父记录存储库中:
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