Typo3 Extbase 后端模块 - 计算 child-table 中的记录

Typo3 Extbase backend module - Count records in child-table

我有一个连接了两个 table 的数据模型(使用 Extension Builder 创建)。

Table A 包含博客 posts,table B 包含对个人 posts 的评论。

Table B 通过 n:1 关系连接到 table A。

现在我想要一个博客 post 的列表,显示每个 post 的评论数。

对于常规查询,我只需将 table B 与一个计数和一个 group by 语句连接起来。 类似于:

SELECT tableA.*, COUNT(tableB.id) FROM tableA 
LEFT JOIN tableB on tableB.foreignKey = tableA.uid
GROUP BY tableB.foreignKey

对于 Extbase 查询,这似乎不起作用。从 tableA 到 tableB 没有任何联系。我该如何实现?

[编辑] 我知道我可以自己编写查询语句。不过,我想使用 T3 的查询对象来完成它。

首先,在您的控制器中,您需要获取博客文章并将它们传递给您的模板:

/**
 * @var \Namespace\PostsRepository
 * @inject
 */
protected $postsRepository = null;

....

public function listAction () {
   $posts = $this->postsRepository->findAll();
   $this->view->assign('posts', $posts);
}

然后在您的模板中,您可以这样显示它:

<f:for each="{posts}" as="post">
    {post.title} <f:count subject="{post.comments}" /> 
</f:for>