我做了一些研究,显然Doctrine不支持REPLACE INTO
,所以我想知道是否有相应的?如果主键不存在,Doctrine是否可以只执行INSERT INTO
?
类似的东西:
$em = $this->getDoctrine()->getManager();
$em->replace($entity);
$em->flush();
或者我必须把它作为条件写吗?如果实体存在,则更新,否则插入?
答案 0 :(得分:0)
如果主键不存在,则可以执行FindOneBy
$entity = $entity->getRepository('Entiy\YOurEntiry')
->findOneBy(array('field1'=>$value,...));
而不是
$entity->setField($field);
$entity->flush($entity);