我想用pommbundle创建自定义插入或更新,但在文档中我只是用于选择查询。
有可能给我一个简单的例子,有可能有最后一个插入ID吗?与... currval ou lastval?
答案 0 :(得分:1)
使用PommBundle可以通过多种方式在数据库中插入数据。
如果您不使用模型管理器,并且想要执行自定义插入:
// in the controller
$this->get('pomm')
->getDefaultSession()
->getQueryManager()
->query('INSERT INTO … VALUES ($*::text, $*::int4…)', [$param1, $param2]);
这种方法很繁琐,因为您必须手动指定所有字段,如果架构发生更改,它可能会中断,但您可以使用SQL杂技指定复杂的插入查询。
如果目标只是保存模型,模型管理器可以使用实体简化数据插入:
use Path\To\Model\MyDb\MySchema\MyEntityModel;
// …
$entity = $this->get('pomm')
->getDefaultSession()
->getModel(MyEntityModel::class)
->createAndSave(['field1' => $param1, …]);
返回的实体是带有数据库默认值的插入数据的图像(大多数时候是自动生成的主键)。