当你在 Symfony2 中自动生成多对多关联的学说实体时,你会得到类似的东西:
/**
* Add child
*
* @param Acme\Entity\Child $child
* @return Parent
*/
public function addChild(\Acme\Entity\Child $child)
{
$this->children[] = $child;
return $this;
}
如果它是与孩子的拥有方的双向关联(OneToMany 通常是这样的),那么无论何时添加孩子,您都必须添加以下行:
$parent->addChild($child);
$child->setParent($parent);
通常我最终会更改 addChild 方法,如下所示:
/**
* Add child
*
* @param Acme\Entity\Child $child
* @return Parent
*/
public function addChild(\Acme\Entity\Child $child)
{
$this->children[] = $child;
$child->setParent($this)
return $this;
}
我只是想知道为什么这不是默认生成的方法(对于双向情况),或者我是否可以为所有双向关联执行此操作而无需考虑我的应用程序中的用法。
你能找出这种做法的任何缺点吗?任何会导致意外/不良行为的情况?
谢谢。