2012-12-05 52 views
2

我需要通過逗號分隔多次保存字段值。我正在獲取值,但我需要將每個值存儲在模型中的一個循環中。將模型保存在循環中yii

$subModel->name = $_POST['Model']['keywords']; 
$keyword = explode(",", $subModel->name);  
for ($i=0; $i<=sizeof($keyword)-1; $i++) 
{ 
    //echo $keyword[$i]."<br/>"; 
    $subModel->name = $keyword[$i]; 
    $subModel->save(); 
} 

它僅存儲最後一個值,誰能告訴我如何好幾次存儲到我的模型爲子模型的每個值一次在一個循環。

感謝

回答

8

你需要設置$subModel->isNewRecord = true在每次迭代中,也未設置(或手動設置爲你選擇的值)模型的id字段。它看起來像這樣:

for ($i=0; $i<=sizeof($keyword)-1; $i++) 
{ 
    // if $subModel->name is not the primary key for that model, unset the PK here: 
    // $subModel->id = null 
    $subModel->name = $keyword[$i]; 
    $subModel->isNewRecord = true; 
    $subModel->save(); 
} 
+1

感謝您的答覆..id是這裏的主鍵。並且我收到了這個錯誤.... CDbCommand未能執行SQL語句:SQLSTATE [23000]:完整性約束違規:1062重複鍵'PRIMARY'的條目'1'。執行的SQL語句是:INSERT INTO'subModel'('name','id')VALUES(:yp0,:yp1) – Developer

+0

@Developer:那是因爲你沒有將id設置爲null。你讀過註釋過的行嗎? – Jon

+0

哇..終極frn ..非常感謝:) – Developer