2017-04-20 68 views

回答

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

+0

工作正常,如果我在symfony中使用“getModel”而不是“getModelManager” – Hayu

+0

Thx,错字固定。 – greg