请参阅以下代码:
$passwords = array('aaaa', 'bbbb', 'ccccc', 'dddd', 'eeeee');
$em = $this->getDoctrine()->getEntityManager();
$foo = new Foo();
$foo->setName('Joe Bloggs');
$foo->setTitle('Mr');
foreach ($passwords as $password) {
$foo->setPassword($password);
$em->persist($foo);
$em->flush();
}
这里当我尝试保存$foo
对象时,我希望将它保存X次,其中X是$passwords
的长度,但是它只插入一次值,然后另外4次更新它。
是否有人知道如何实现这一目标,以便将记录插入5次。
由于
答案 0 :(得分:3)
创建和更新之间的选择是在对象标识上进行的:
所以,不要试图通过不重复setName和setTitle来优化处理,但是你只能执行一次flush();):
$passwords = array('aaaa', 'bbbb', 'ccccc', 'dddd', 'eeeee');
$em = $this->getDoctrine()->getEntityManager();
foreach ($passwords as $password) {
$foo = new Foo();
$foo->setName('Joe Bloggs');
$foo->setTitle('Mr');
$foo->setPassword($password);
$em->persist($foo);
}
$em->flush();