如何使用doctrine 2在循环中插入多行

时间:2011-05-31 09:25:57

标签: zend-framework doctrine

我想使用doctrine 2 ..

在循环中插入多行

我通常使用以下方法插入1条记录:

$实体 - >使用setData($贴);         $这 - > _doctrine->坚持($实体);         $这 - > _doctrine->冲洗();

2 个答案:

答案 0 :(得分:2)

只需保留所有对象,然后在循环后调用flush()。

    $entityDataArray = array();  // let's assume this is an array containing data for each entity
    foreach ($entityDataArray AS $entityData) {
        $entity = new \Entity();
        $entity->setData($entityData);
        $this->_doctrine->persist($entity);
    }
    $this->_doctrine->flush();

如果您要插入大量对象,则需要批量插入(请参阅http://www.doctrine-project.org/docs/orm/2.0/en/reference/batch-processing.html

答案 1 :(得分:0)

在你的循环中,你应该能够简单地:

$entity1->setData($data1);
$this->_doctrine->persist($entity1);

$entity2->setData($data2);
$this->_doctrine->persist($entity2);

$this->_doctrine->flush();