2009-12-22 61 views
0

我有问题,将在symfony的多个记录,会发生什么情况是第二到最后的记录刚刚更新的第一条记录symfony中插入多个记录

例如:

$n = new Object(); 

// start loop until i = 5 
$n->count = $i; 
$n->text = 'a'.$i; 
$n->save(); 
i++; 
//end loop 

这个循环那里有只1次记录后, ... count = 5,text = a5;

有没有办法清除$ n,这样当我再次插入新记录时,它不会更新第一个?

+0

你的“对象”和你的模型的更多细节,将有助于 – 2009-12-22 16:18:54

回答

3

我觉得你的伪代码需要改变一点 - 包括循环内的新定义:

// start loop until i = 5 
$n = new Object(); 
$n->count = $i; 
$n->text = 'a'.$i; 
$n->save(); 
i++; 
//end loop 

它更有意义也是这样的 - 你想5个新行,所以这样做,你必须创建一个新对象5次。

0

如果你想在循环之外获得新的操作,unset($ n-> id)就可以做到这一点。

0

您正在修改symfony解释为修改相同数据库行的同一个对象。在循环内移动对象创建代码。

您可能认为您只需创建一次对象即可优化性能,但通过在已具有'id'属性的对象上调用save(),symfony将执行数据库更新而不是插。插入通常是不变的时间操作,而更新的执行取决于不同的因素,包括如何设置索引。

P.S我NO分贝专家,所以也许我完全脱落:-)