我有一个实体 Dog ,与 Collar 有OneToOne关系。
假设我创建了一个新的 Dog 实体,并且我想要与之关联的 Collar ID。不是 Collar 对象本身,只是它的ID号。
$collar = 12;
$dog = new Dog();
$dog->setCollar(?);
我是否需要从数据库中实际获取 Collar 对象,仅设置它的ID(已经给出),或者是否有办法创建代理 Collar 对象?
答案 0 :(得分:4)
是的,实际上是
您可以使用您的实体管理器获取代理参考,而不是实际的实体,它只是为您提供代表实体的代理对象,而不实际从数据库中提取它。
检查以下代码以获取示例
$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();