我进行了一些研究,发现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/