Php 使用外键复制-Laravel
我试图在我的数据库中复制某些数据,并按照以下链接中的步骤进行操作。 但是,我需要仅使用外键复制一些其他数据。我尝试使用find()方法获取数据,但未返回任何内容。where子句返回我的数据,但以数组的形式返回,这是复制方法不接受的 我不知道我做错了什么,我如何复制我的其他数据 代码:Php 使用外键复制-Laravel,php,mysql,database,laravel,replicate,Php,Mysql,Database,Laravel,Replicate,我试图在我的数据库中复制某些数据,并按照以下链接中的步骤进行操作。 但是,我需要仅使用外键复制一些其他数据。我尝试使用find()方法获取数据,但未返回任何内容。where子句返回我的数据,但以数组的形式返回,这是复制方法不接受的 我不知道我做错了什么,我如何复制我的其他数据 代码: 对于复制技能,您可能应该使用: $skills = Skill::where('cv_id', $cv_id)->get(); foreach ($skills as $skill) { $clo
对于复制技能,您可能应该使用:
$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
是一个集合,所以您需要使用循环来复制每个技能。您的代码或任何数据结构在哪里?我们不是巫师,我们有密码。还有什么事情没有你想象的那么好?此处是否创建了任何数据?成功创建了cv部分。在技能部分中,只有第一行有效,我无法复制调用未定义方法illumb\Database\Query\Builder::replicate()的数据。确定它有效,但技能表中的cv\u id没有更改为新的。它与前一行一样。为什么会发生这种情况?@omarsafwany,因为您使用相同的变量来查找技能$cv\u id
。如果您想使用其他id,您需要在CV中再次找到另一个项目,并将$CV_id
更改为其id。
$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);
}