假设我有两个具有一对多关系的实体。称他们为EntityOne和EntityMany。
我想将EntityMany保存到数据库中。 我没有EntityOne的实例,但我知道所需的entity_one_id。
有没有办法在不从db中检索EntityOne实例的情况下保存EntityMany?
我不想对保存的EntityMany做任何事情。我只是想保存它。
在这种情况下,我能够保存EntityMany的唯一方法是从数据库中检索EntityOne,执行$ entity_many-> setEntityOne($ entity_one),然后保留EntityMany。
这有效,但当所有数据库需求都是id时,它似乎是对EntityOne的不必要的查询。
我尝试简单地实例化一个新的EntityOne()并设置id(我必须为自动生成的整数id添加一个setter),然后使用那个未保存的实例,但是Doctrine对几个错误不满意。
答案 0 :(得分:1)
EntityManager有一个方法“getReference” - 你可以用它来实现你的目标。看起来应该是这样的:
$entityRef = $em->getReference('EntityOne', $entityOneId);
$entityMany->setEntityOne($entityRef);
// ...
看这里:
http://docs.doctrine-project.org/en/latest/reference/configuration.html#proxy-objects