如何在laravel深度克隆?

时间:2018-01-26 13:49:29

标签: php laravel

我找到了一个与一个关系有关的解决方案,但我有一个模型层次结构......

Board -> Task -> Card ->{coments,files,labels},{checklist}-> checklistitems

我的问题是,每当我复制董事会或任务或任何后续儿童时,都应该复制引用到新项目。

给我一​​点提示...... !!

1 个答案:

答案 0 :(得分:0)

您必须克隆模型然后循环原始关系并将它们设置为克隆。使用模型上的replicate方法启动。

https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Model.html#method_replicate

$clonedBoard = $board->replicate();

foreach($board->tags as $tag)
{
    $clonedBoard->tags()->attach($tag);
    // you may set the timestamps to the second argument of attach()
}