我进行了一些研究,发现Doctrine显然不支持REPLACE INTO,因此我想知道是否存在等效的代码?如果主键不存在,Doctrine是否有办法只做一个INSERT INTO

就像是:

$em = $this->getDoctrine()->getManager();
$em->replace($entity);
$em->flush();

还是我必须将其写为条件?如果实体存在,请更新,否则插入?

最佳答案

如果主键不存在,则可以执行FindOneBy

$entity = $entity->getRepository('Entiy\YOurEntiry')
->findOneBy(array('field1'=>$value,...));

然后
$entity->setField($field);
$entity->flush($entity);

关于php - Symfony2 Doctrine2,有一个 'REPLACE INTO'函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25334326/

10-16 23:36