doctrine-orm - 在Doctrine2中获取实体代理

标签 doctrine-orm relationship proxy-classes

我有一个实体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/

相关文章:

c# - 我可以使用脚本管理器为 WCF 服务库生成代理对象吗?

wcf - WCF 代理类中缺少方法参数

Symfony 表单 mime 类型应该只接受 PDF 文件

mysql - Eloquent 按关系过滤(仅最后一条记录)

ios - 在 Swift 中解析关系

php - 如何在 3 个实体(项目、它们的类别和附加字段)之间创建数据库关系?

c++ - 在 C++ 中将临时变量作为非常量引用传递

php - 教义2 : Lazy loading fails and I have to re-initialize the class

mysql - 从 2 个表中获取数据,在 Doctrine 上没有关系

php - 如果一对多关联发生变化,symfony 事件监听器 preUpdate 会被调用