tutorial generate framework espaƱol delete php sql orm doctrine

php - generate - implementando "actualizar si existe" en Doctrine ORM



generate entities symfony 4 (4)

Estoy tratando de INSERT OR UPDATE IF EXISTS en una transacción.

en mysql , generalmente usaría DUPLICATE KEY ("UPDATE ON DUPLICATE KEY".) Soy consciente de muchas soluciones a este problema usando varias variantes y subconsultas de SQL, pero estoy tratando de implementar esto en Doctrine (PHP ORM ). Parece que habría métodos de Doctrine para hacer esto, ya que está repleto de funciones, pero no encuentro nada. ¿Es este tipo de cosas un problema al usar paquetes ORM de PHP por alguna razón? ¿O algún experto en Doctrine sabe cómo lograrlo a través de hacks o por cualquier medio?




Doctrine admite REPLACE INTO utilizando el método replace() . Esto debería funcionar exactamente como la ON DUPLICATE KEY UPDATE que estaba buscando.

Documentos: Reemplazo de registros


Lo único que se me ocurre es consultar primero a la entidad si existe, de lo contrario, crear una nueva entidad.

if(!$entity = Doctrine::getTable(''Foo'')->find(/*[insert id]*/)) { $entity = new Foo(); } /*do logic here*/ $entity->save();