当你要插入一个Entity你这样做:你如何使用Doctrine 2中的实体关系?
$user = new User();
$user->setEmail('[email protected]');
$em->persist($user);
$em->flush();
但是,如果我想创建可以具有一个用户的文章是什么;
目前,我需要做的:
$user = $em->getRepository('User')->find($id);
$article->setUser($user);
这是因为关系的,原则2请求的用户实体。
但是,我不能“模拟”的用户对象,因为我不希望的ID可以手动设置,所以我不能做信息:
$user = new User();
$user->setId(45);
我错了这个行为,你好吗?
加载用户实体只是为了设置关系,即使是使用高速缓存(这不总是一个选项),尤其是对于更新,可能是性能问题。
真棒,谢谢(再次!) – JohnT 2011-05-16 09:04:27
洛尔蒂姆,再次这个难以捉摸的'getReference()'功能保存一天。顺便说一句 - 在代码'$ em()'中输入错字。 – Cobby 2011-05-16 13:36:35
@Cobby - 它看起来像#1清晰记录,但经常被忽视的功能。毕竟,我们可能已经找到了一个体面的使用案例