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关于它的。
我想使用 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关于它的。