关于 php:Doctrine 2: 如何用孩子的数量更新字段?

Doctrine 2: How to update field with number of children?

如果我有两个实体:ParentChild,如何运行单个查询并使用相关子项的数量更新 Parent.number_of_children

我可以遍历每个父节点,但可以通过 MySQL 中的单个查询轻松完成,问题是如何在 Doctrine 2 中完成(可能使用 DQL)?


除非有人提供更好的解决方案,否则我会使用原生 SQL:

1
$entityManager -> getConnection() -> query("...");

我会使用 PrePersistPreUpdate 事件:

1
2
3
4
5
6
7
8
9
10
11
12
class Parent
{
    /**
     * @ORM\\PrePersist()
     * @ORM\\PreUpdate()
     */

    public function onPrePersistAndUpdate()
    {
        $this->numberOfChildren = count($this->getChildren());
    }

}