Symfony 在循环中获取新创建的条目ID
在我的Symfony 3应用程序中,我需要获取新创建条目的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
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。