Me gustaría crear una inserción o actualización personalizada con pommbundle, pero en la documentación solo tengo una consulta de selección.
¿Es posible darme un ejemplo simple con la posibilidad de tener una última identificación de inserción? con ... currval ou lastval?
Hay varias formas de insertar datos en la base de datos usando PommBundle.
Si no utiliza el Administrador de modelos y desea realizar una inserción personalizada:
// in the controller $this->get('pomm') ->getDefaultSession() ->getQueryManager() ->query('INSERT INTO … VALUES ($*::text, $*::int4…)', [$param1, $param2]);Este método es tedioso porque tiene que especificar todos los campos a mano, puede romperse si cambia el esquema, pero puede especificar una consulta de inserción compleja usando acrobacias de SQL.
Si el objetivo es solo guardar un modelo, el administrador de modelos facilita la inserción de datos usando entidades:
use Path\To\Model\MyDb\MySchema\MyEntityModel; // … $entity = $this->get('pomm') ->getDefaultSession() ->getModel(MyEntityModel::class) ->createAndSave(['field1' => $param1, …]);La entidad devuelta es la imagen de los datos insertados con los valores predeterminados de la base de datos (la mayoría de las veces, la clave principal se genera automáticamente).
Aquí está la documentación al respecto.