Доктрина 2: Как обновить поле с количеством детей? - PullRequest
0 голосов
/ 10 марта 2012

Если у меня есть две сущности: Parent и Child, как я могу выполнить один запрос и обновить Parent.number_of_children числом связанных детей?

Я мог бы выполнить итерацию для каждого родителя,но это легко сделать, например, с помощью одного запроса в MySQL, вопрос в том, как это сделать в Doctrine 2 (возможно, с DQL)?

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Пока кто-нибудь не предложит лучшего решения, я буду использовать нативный SQL:

$entityManager -> getConnection() -> query("...");
0 голосов
/ 12 марта 2012

Я буду использовать PrePersist и PreUpdate события:

class Parent
{
    /**
     * @ORM\PrePersist()
     * @ORM\PreUpdate()
     */
    public function onPrePersistAndUpdate()
    {
        $this->numberOfChildren = count($this->getChildren());
    }

}
...