使用服务正确更新评论prepersist上的文章的评论数量

时间:2012-01-02 13:15:48

标签: symfony doctrine-orm

我有文章和评论实体(oneToMany)

在评论prepersist生命周期事件中,我想计算本文有多少评论并更新文章的comment_count字段。

如果我正确理解symfony2方法,我需要为此编写服务。我们称之为CommentCountManager。

我的问题是:我如何在实体中使容器可用,以便我可以获取CommentCountManager并对计算给定文章的注释的函数进行调整,以及如何在CommentCountManager中访问Doctrine的实体管理器以便我实际上可以在那里运行查询?

我是在正确的道路上吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您无需将注释计数存储在单独的列中 - 您可以在输出中对它们进行计数。你要做的是非规范化,我建议避免它,除非你出于性能原因绝对需要它 - 并且只有当你确定 部分导致问题时才会这样做。但即便如此,查询优化和缓存也是非规范化的更好选择。

让实体了解容器也是一个坏主意。如果你需要这个,那么你做错了。

要访问服务中的实体管理员,您需要inject它。