Reputation: 11906
I am writing an application in Symfony2 and Doctrine. Here's all the codes that might be necessary:
https://gist.github.com/3440325
This code block works fine and creates the relationship correctly:
$twitter->setUser($user);
$skype->setUser($user);
Working correctly means it creates a row in the users table and inserts the correct user id in the handles table.
Where as, this code block doesn't work as expected:
$user->addHandle($skype);
$user->addHandle($twitter);
It successfully inserts all the entries but can't insert the correct user id in the handles table. As a matter of fact, the user_id column remains empty.
What is going wrong here? Am I missing something? Is my expectation incorrect or there is some bug some where?
-- Masnun
Upvotes: 3
Views: 456
Reputation: 15087
Since you have a bidirectional one-to-many relationship, you need to set referenced entities on both sides synchronously.
public function addHandle(\WeCodePHP\HomeBundle\Entity\Handle $handles)
{
$this->handles[] = $handles;
$handles->setUser($this);
}
Otherwise doctrine won't guess what a handle belongs to.
Upvotes: 2