Pommbundle 自定义查询插入或更新 - Symfony2

Pommbundle Custom query Insert or update - Symfony2

我想使用 pommbundle 创建自定义插入或更新,但在文档中我只有一个 select 查询。

可以给我一个简单的例子吗?与...currval 或 lastval?

有几种使用 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, …]);

返回的实体是具有数据库默认值的插入数据的图像(大多数时候自动生成主键)。

这是the documentation关于它的。