2012-08-23 92 views
3

我在Symfony2和Doctrine中编写应用程序。下面是可能是必要的所有代码:Symfony2和Doctrine:一对多关系

https://gist.github.com/3440325

此代码块工作正常,并正确地创建了关系:

 $twitter->setUser($user); 
     $skype->setUser($user); 

正常工作,意味着它会在用户表中的一行,并插入在句柄表中更正用户标识。

凡为,预期该代码块不起作用:

$user->addHandle($skype); 
$user->addHandle($twitter); 

它成功地插入所有的项目,但不能插入手柄表中的正确的用户ID。事实上,user_id列保持为空。

这里怎么回事?我错过了什么吗?我的期望是不正确的还是有一些错误在哪里?

- Masnun

回答

2

既然你有一个双向一个一对多的关系,你需要设置同步双方引用的实体。

public function addHandle(\WeCodePHP\HomeBundle\Entity\Handle $handles) 
{ 
    $this->handles[] = $handles; 
    $handles->setUser($this); 
} 

否则教义不会猜测句柄属于什么。

+0

感谢meze,使完美的感觉:) – masnun

相关问题