symfony doctrine setear manualmente el id auto incremental de una entidad
creamos la entidad normalmente que se generará con un id bajo la estrategia AUTO
fijarse que doctrine genera el método getId pero no el de setId...entonces, hay que crearlo.
para poder setear manualmente el id, debemos cambiar dinámicamente por código la estrategia de la entidad, después del persist, antes del flush:
(testeado en symfony 2.8)
$em = $this->getContainer()->get('doctrine.orm.default_entity_manager');
$name=$input->getArgument('articuloName');
$id=$input->getArgument('articuloId');
$product = new Articulo();
$product->setId($id);
$product->setNombre($name);
$em->persist($product);
$metadata = $em->getClassMetaData(get_class($product));
$metadata->setIdGenerator(new AssignedGenerator());
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
$em->flush();
cuando no se setee manualmente el id, doctrine tomará como último id ingresado el de mayor valor de la tabla.
Suscribirse a:
Enviar comentarios (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
por consola y desde la raiz de tu proyecto php artisan --version
-
en nuestro proyecto creamos una carpeta llamada donde estaran todas nuestras clases, por ejemplo una llamada: MiApp adentro de esta irian b...
-
Integridad al nivel de la base de datos Oracle Oracle valida la integridad de la base de datos y presenta los siguientes mensajes de erro...
No hay comentarios:
Publicar un comentario