Kohana/PHP记录在循环内运行时会被替换

Kohana/PHP记录在循环内运行时会被替换,php,kohana-3,Php,Kohana 3,我的代码中有以下代码片段,但问题是当我尝试添加多个项目时。它正在被添加,但它正在重新分解先前添加的行,例如:-在下面的代码段中,id 150只有一条记录,而该记录将为13。你能告诉我是什么问题吗 public function StoreSkills($skills,$id) { $skills = "16,13"; $id = "150"; if(!empty($skills)){ $UserSkillsObj = ORM::factory('u

我的代码中有以下代码片段,但问题是当我尝试添加多个项目时。它正在被添加,但它正在重新分解先前添加的行,例如:-在下面的代码段中,id 150只有一条记录,而该记录将为13。你能告诉我是什么问题吗

    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();


    }
    }

}

将创建对象的线移动到foreach循环中。将其置于外部意味着您总是引用同一个对象,因此最终(第二个)循环将保存在第一个循环上,使其始终为13

例如:

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