我有文章和评论实体(oneToMany)
在评论prepersist生命周期事件中,我想计算本文有多少评论并更新文章的comment_count字段。
如果我正确理解symfony2方法,我需要为此编写服务。我们称之为CommentCountManager。
我的问题是:我如何在实体中使容器可用,以便我可以获取CommentCountManager并对计算给定文章的注释的函数进行调整,以及如何在CommentCountManager中访问Doctrine的实体管理器以便我实际上可以在那里运行查询?
我是在正确的道路上吗?
非常感谢您的帮助。
答案 0 :(得分:2)
您无需将注释计数存储在单独的列中 - 您可以在输出中对它们进行计数。你要做的是非规范化,我建议避免它,除非你出于性能原因绝对需要它 - 并且只有当你确定 部分导致问题时才会这样做。但即便如此,查询优化和缓存也是非规范化的更好选择。
让实体了解容器也是一个坏主意。如果你需要这个,那么你做错了。
要访问服务中的实体管理员,您需要inject它。