Laravel使用新值复制记录和复制

时间:2015-12-13 23:38:11

标签: laravel

如何复制记录并使用不同的值保存1个或多个字段?

例如: 得到----> first_name,last_name,civil_status,work

我想复制第一个名字和姓氏,然后将其插入新的公民身份并开始工作。

4 个答案:

答案 0 :(得分:33)

你可以像这样使用replicate模型方法:

// Retrieve the first task
$task = Task::first();

$newTask = $task->replicate();
$newTask->project_id = 16; // the new project_id
$newTask->save();

答案 1 :(得分:10)

您可以使用replicate方法。这将创建一个具有相同值的新对象,但主键和时间戳除外。之后,您可以保存您的模型:

$task = Task::find(1);
$new = $task->replicate();

如果您愿意,可以更改房产

$new->project = $otherProject;

然后

$new->save();

如果您想要新ID,请轻松:

$newID = $new->id;

答案 2 :(得分:7)

您可以使用replicate()然后更新该行:

Model::find(1)->replicate()->save();

$model = Model::find(1);
$model->project_id = $new_project_id;
$model->save();

答案 3 :(得分:2)

您也可以这样做。

$selected = Model::find(1);
$copy = $selected->replicate()->fill(
    [
        'project_id' => $new_project_id,
    ]
);
$copy->save();