我有一个Doctrine \ ORM实体,由Doctrine ObjectManager创建的新的和现有的数据库实体组成:merge()。在刷新之前,我想防止重复(上下文是用户可以在同一请求中发送例如重复城市名称的API)。
如上所述in this github issue,建议在每次执行persist()操作后刷新,以便能够在我的数据库中查询现有记录,包括此请求中保留的记录。我怎么能这样做?
我的代码是:
...
$object = $mapper->map($objectRaw, new $modelClassName());
$object = $em->merge($object);
# I need to intervene here I suppose
$em->flush();
我试过了:
似乎我需要一种方法来逐个刷新每个实体并在那时进行检查,例如:
或者另一个想法 - 非常感谢你!
编辑:另一个想法可能就是在 $em->merge($object);
之前对对象进行检查和操作。但是你会失去与存储库匹配的可能性。所以,这个问题让我很忙......