来强制它
我想知道是否有可能持久并冲洗代理文档。
如果我们克隆一个代理文档(不要忘记实现__clone方法来重置ID参数),并且持久和齐平是否插入?
如果我们想要文档副本,可能会发生这种情况。
示例文档:
// User.php
class User
{
// @ReferenceOne(targetDocument="Group")
private $group;
}
// Group.php
class Group
{
public function __clone()
{
if ($this->id) {
$this->id = null;
}
}
//....
}
用法:
$user = $dm->createQueryBuilder('User')->getQuery()->getSingleResult();
$group = $user->getGroup(); // $group is a proxy document
$newGroup = clone $group;
$dm->persist($newGroup);
$dm->flush();
这可能是一个不好的例子,但是只是要知道这是否可能。
edit :对于那些想做类似事情的人,它不是直接工作的,但是您可以使用" onflush''事件
我最近键入了同样的问题(错误),显然,您当前坚持一个代理文档(根据版本1.0.0.0-beta99)。我提出了一个问题,并写了一个简单的测试案例,证实了这种行为:https://github.com/doctrine/mongodb-odm/issues/619。