2014-09-20 68 views
0

我的代码中有以下片段,但问题是当我尝试添加多个项目时。它正在被添加,但它正在重新添加以前添加的行,例如: - 在下面的代码片段中,只有一条记录会出现在ID为150的位置,并且该记录将是13.您能否告诉我问题是什么。Kohana/PHP记录被替换,如果它在循环内运行

public function StoreSkills($skills,$id) { 
    $skills = "16,13"; 
    $id = "150"; 
    if(!empty($skills)){ 
     $UserSkillsObj = ORM::factory('userskill'); 
    $userskills = explode(',',$skills); 
    foreach($userskills as $skill) 
    { 
     // $UserSkillsObj = ORM::factory('userskill'); if this statement is here, 
               //records are getting added just fine. 
     $UserSkillsObj->user_id = $id; 
     $UserSkillsObj->skills_id = $skill; 
     $ids = $UserSkillsObj->save(); 


    } 
    } 

} 

回答

1

将创建对象的线移动到您的foreach循环中。外面有它意味着你总是引用相同的对象,因此最后的(第二)环路可节省超过第一位的,使得它总是13

例子:

foreach($userskills as $skill) 
{ 
    $UserSkillsObj = ORM::factory('userskill'); 
    $UserSkillsObj->user_id = $id; 
    $UserSkillsObj->skills_id = $skill; 
    $ids = $UserSkillsObj->save(); 
}