我有一个实体Dog,与Collar具有OneToOne关系。
假设我创建了一个新的 Dog 实体,并且我有想要与其关联的 Collar id。不是项圈对象本身,只是它的 ID 号。
$collar = 12;
$dog = new Dog();
$dog->setCollar(?);
我是否需要实际从数据库获取Collar对象,只是为了设置它的id(已经给定),或者有没有办法创建一个代理项圈对象?
最佳答案
是的,确实有
您可以使用实体管理器来获取代理引用而不是实际的实体,它只是为您提供代表实体的代理对象,而无需实际从数据库中获取它。
查看下面的代码示例
$collarId = 12;
// First param is the Entity classname, second is the Entity id
$collar = $entityManager->getReference('Collar', $collarId);
$dog = new Dog();
$dog->setCollar($colar);
$entityManager->persist($dog);
$entityManager->flush();
关于doctrine-orm - 在Doctrine2中获取实体代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497235/