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

时间:2017-04-20 08:06:35

标签: postgresql symfony pomm

我想用pommbundle创建自定义插入或更新,但在文档中我只是用于选择查询。

有可能给我一个简单的例子,有可能有最后一个插入ID吗?与... currval ou lastval?

1 个答案:

答案 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, …]);

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

以下是the documentation