Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用外键复制-Laravel_Php_Mysql_Database_Laravel_Replicate - Fatal编程技术网

Php 使用外键复制-Laravel

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

我试图在我的数据库中复制某些数据,并按照以下链接中的步骤进行操作。 但是,我需要仅使用外键复制一些其他数据。我尝试使用find()方法获取数据,但未返回任何内容。where子句返回我的数据,但以数组的形式返回,这是复制方法不接受的

我不知道我做错了什么,我如何复制我的其他数据

代码:


对于复制技能,您可能应该使用:

$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);
}