A warning in the ManyToManyPersister is most likely a bug: can you
reproduce it in isolation, against the Doctrine2 test suite?

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On 15 January 2016 at 09:39, Márcio Dias de Oliveira <[email protected]>
wrote:

> Hello, do you know if there is a way to detach an entity on the many to
> many bidirectional relationship?
>
> I'm having some problems, specific:
>
> Warning: array_pop() expects parameter 1 to be array, null given in
> /my/path/to
> /vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php
>  on
> line 532
>
> The context of the warning is:
>
>    - I have a person Entity and an Address entity with a many to many
>    relationship between them;
>    - The person entity is used with a doctrine hydrator to populate my
>    form with person and addresses data for a specific person.
>    - If the person changes an address and send the form I will have the
>    cases:
>       - Case 1: The address already exists on database. So I remove the
>       previous address from person ($person->removeAddress($address)), detach 
> the
>       previous address ($em->detach($address)) and add the new one from 
> database
>       ($person->addAddress($addressFormDatabase));
>       - Case 2: The address does not exists on database. I remove the
>       previous address, detach it, create a new one and add to person;
>
> The problem is that the previous address is not removed from person
> (produces the warning) but the new one is saved and associated correctly.
>
> my addAddress  and removeAddress code is
>
>     /**
>      * @param Address $address
>      * @return Person
>      */
>     public function removeAddress(Address $address)
>     {
>         $address->removePerson($this);
>         $this->addresses->removeElement($address);
>         return $this;
>     }
>
>     /**
>      * @param Address $address
>      * @return Person
>      */
>     public function addAddress(Address $address)
>     {
>         if (!$this->hasAddress($address)) {
>             $address->addPerson($this);
>             $this->addresses->add($address);
>         }
>         return $this;
>     }
>
> --
> You received this message because you are subscribed to the Google Groups
> "doctrine-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/doctrine-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to