0

DB で特定のデータを複製しようとしており、次のリンクの手順に従いました。Laravel 4: テーブルに複製する ただし、外部キーのみを使用して他のデータを複製する必要があります。find() メソッドを使用してデータを取得しようとしましたが、何も返されませんでした。where 句はデータを返しますが、配列の形式ですこれはレプリケート メソッドでは受け入れられません。

何が間違っているのか、他のデータを複製するにはどうすればよいですか?!

コード:

$item = Cv::find($cv_id);
        // return $item;
        $clone = $item->replicate();
        unset($clone['created_at'],$clone['updated_at']);
        $data = json_decode($clone, true);
        Cv::create($data);

        //Skills
        // return $cv_id;
        $skills = Skill::where('cv_id', $cv_id);
        $cloneSkills = $skills->replicate();
        unset($cloneSkills['created_at'],$cloneSkills['updated_at']);
        $skillData = json_decode($cloneSkills,true);
        Skill::create($skillData);
4

1 に答える 1

1

スキルを複製するには、おそらく次を使用する必要があります。

$skills = Skill::where('cv_id', $cv_id)->get();

foreach ($skills as $skill) {

    $cloneSkill = $skill->replicate();
    unset($cloneSkill['created_at'], $cloneSkill['updated_at']);
    $skillData = json_decode($cloneSkill, true);
    Skill::create($skillData);
}

get()すべてのデータを取得するために使用する必要が$skillsあり、 Collection であるため、ループを使用して各スキルを複製する必要があります。

于 2014-10-02T12:23:53.363 に答える