在原则 2 中获取实体代理



我有一只与项圈一对一关系的实体

假设我创建了一个新的 Dog 实体,并且我有想要与之关联的项圈 ID。不是 Collar 对象本身,只有它的 ID 号

$collar = 12;
$dog = new Dog();
$dog->setCollar(?);

我是否需要实际从数据库中获取 Collar 对象,只是为了设置它的 id(已经给出),或者有没有办法创建一个代理 Collar 对象?

是的,实际上有

您可以使用实体管理器来获取代理引用,而不是实际的实体,后者仅为您提供表示实体的代理对象,而无需实际从数据库中获取它。

查看下面的代码以获取示例

$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();

最新更新