Symfony 在循环中获取新创建的条目ID

Symfony 在循环中获取新创建的条目ID,symfony,doctrine,Symfony,Doctrine,在我的Symfony 3应用程序中,我需要获取新创建条目的ID 我的代码是: foreach(array('a', 'b', 'c') as $value){ $entry = new Entry(); $entry->seName($value); $em->persist($entry); } $em->flush(); 我使用$em->flush;只有一次,并且不能在每次迭代中使用它,因为此块位于事务上 在这种情况下,是否可以获取新创建的条目的I

在我的Symfony 3应用程序中,我需要获取新创建条目的ID

我的代码是:

foreach(array('a', 'b', 'c') as $value){
    $entry = new Entry();
    $entry->seName($value);
    $em->persist($entry);
}
$em->flush();
我使用$em->flush;只有一次,并且不能在每次迭代中使用它,因为此块位于事务上


在这种情况下,是否可以获取新创建的条目的ID?

实际上,您不能在数据库中生成ID

自动递增的ID不会在刷新之前创建,因此您无法在刷新之前访问ID

很难说您的用例到底是什么,但您可以ofc将创建的实体存储在数组中,并在刷新后从那里访问ID,如果这可以解决您的问题:

$entries = [];

foreach(array('a', 'b', 'c') as $value){
    $entry = new Entry();
    $entry->seName($value);
    $entries[] = $entry;
    $em->persist($entry);
}
$em->flush();

foreach ($entries as $entry) {
    var_dump($entry->getId());
}

不是真的。id由数据库生成。数据库只有在刷新时才起作用。您可以使用“无”的名称,然后生成自己的id。