сбережение ошибок OneToMany и ManyToMany с Doctrine 2

У меня проблема с «Doctrine2». При попытке сохранить связь «ManyToMany» или «OneToOne» PHP оставляет ошибку исключения! Я оставляю ошибку, чтобы вы могли мне помочь.

Неустранимая ошибка: исключить исключение «InvalidArgumentException» с сообщением «Новый объект, найденный через объекты« Связь »\ Пользователь # привилегия» Это не настроено на каскадное сохранение. Операции для объекта: Entities \ Privilege @ 0000000012feb12000000000616126d4. Явно или сохраняйте новый объект, настроенный каскадом, сохраняйте операции над этим отношением. Если вы не можете узнать, что вызывает проблему, реализуя сущность Entities \ Privilege # __toString () ', чтобы получить ключ. "в C: \ Program Files \ EasyPHP-5.3.4.0 \ www \ mframework_2 \ phpinc \ Doctrine \ ORM \ UnitOfWork.php в строке 576

Код, который я использую, чтобы сохранить отношения:


     $ user = new \ Entities \ User ();
             $ User-> SetActive (истина);
             $ User-> setUsername ( 'ххх');
             $ User-> SetPassword ( 'ххх');

     $ email = new \ Entities \ Email ();
             $ Email-> setEmail (ххх ');
             $ Email-> SetType ( 'ххх');

     $ User-> AddEmail ($ электронная почта);

     $ This-> em-> сохраняются ($ пользователю);
             $ This-> em-> заподлицо ();

В Entitie User у меня есть следующее:


    /** @OneToOne(targetEntity="Privilege") */ protected $privilege; 

    У меня такая же проблема, как и многие отношения ManyToMany!

    Большое спасибо!

    Related of "сбережение ошибок OneToMany и ManyToMany с Doctrine 2"

    Добавьте cascade = {"persist"} в свое привилегированное поле:

     /** @OneToOne(cascade={"persist"}, targetEntity="Privilege") */ protected $privilege; 

    Выполните одно из следующих действий:

    1- использование сохраняется для объектов пользователя и электронной почты

     $this->em->persist($user); $this->em->persist($email); $this->em->flush(); по $this->em->persist($user); $this->em->persist($email); $this->em->flush(); 

    или

    2- добавить каскад в вашу организацию

     /** @OneToOne(targetEntity="Privilege", cascade={"persist"}) */