我得到了一张与另一张相关的表格
TABLE A
uid
name
TABLE B
uid
name
rel_table_a
现在我想:
// find all table A that is related to by table B
public function findAllTableAThatIsRelatedToByTableB() {
$query = $this->createQuery();
// what should this line be?
//$query->matching($query->count(tableB.rel_table_a = uid));
return $query->execute();
}
是否可能或者是否需要首先在表A的TCA中创建关系。
答案 0 :(得分:2)
您可以在查询中使用相关表,但首先需要正确设置TCA
和模型,否则extbase不知道表的关联方式。
作为查询条件,您可以检查关系是否存在。
在您的结构中,我们只能对表B执行此查询,因为您的表A没有关系字段,因此在此示例中,您将获得表B中具有表A元素相关的所有项。
$query->matching($query->greaterThan('rel_table_a.uid', 0));
如果从表A到表B的关系为1:n,则应使用内联字段。这样您就可以对表A进行查询:https://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Inline/Index.html
PS:您无法在$query->count
$query->matching