Typo3 Extbase后端模块-计数子表中的记录

时间:2018-08-14 06:26:32

标签: extbase typo3-8.x

我有一个数据模型,其中连接了两个表(使用Extension Builder创建)。

表A包含博客帖子,表B包含对各个帖子的评论。

表B以n:1的关系连接到表A。

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

使用常规查询,我只需将带有计数和group by语句的表B连接起来。 像这样:

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

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

[编辑]我知道我可以自己编写查询语句。不过,我想使用T3的查询对象来做到这一点。

1 个答案:

答案 0 :(得分:1)

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

/**
 * @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>