Doctrine: postUpdate не запускается после обновления ManyToMany из непустой коллекции в пустую коллекцию - PullRequest
0 голосов
/ 18 марта 2020

У меня проблема с событием postUpdate при замене непустой коллекции (user->userRoles) на пустую. Во время этой операции событие postUpdate не запускается для объекта User.

Я не могу понять, почему PostUpdate не срабатывает после обновления ManyToMany из непустой коллекции в пустую коллекцию.

Все нормально при добавлении из пустого в непустое; То же самое при добавлении одного, при удалении одного из двух, при изменении других полей. Только не из непустой коллекции в пустую коллекцию.


class DatabaseActivitySubscriber implements EventSubscriber
{
    public function getSubscribedEvents()
    {
        return [
            Events::postUpdate,
            (...)
        ];
    }

    public function postUpdate(LifecycleEventArgs $args)
    {
        // This is not called during change from count($user->userRoles)>0 to count($user->userRoles)=0 
    }

}

class User {
    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\UserRole")
     */
    private $userRoles;
    (...other fields...)
}
...