2009-12-22 88 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分貝專家,所以也許我完全脫落:-)