Laravel Eloquent: 复制一行

首先我们需要有一张表:

Schema::create('tasks', function (Blueprint $table) {
    $table->increments('id');
    $table->string('task');
    $table->text('description');
    $table->timestamps();
    $table->softDeletes();
});

建一个 Model:

class Tasks extends Model
{
    use SoftDeletes;
    protected $table = 'tasks';
    protected $fillable = ['task', 'description'];
}

在数据里我们有一个任务:

ReplicateDatabaseSingle

接下来我们运行下面的代码来复制一行:

$tasks = Tasks::find(1);
$newTask = $tasks->replicate();
$newTask->save();

我们可以看到我们数据库里面的这一行已经复制成功了,有新的 idtimestamps

你只需要一行代码就可以复制很多数据,这个方法在循环中也有效,所以你可以用它复制所有的数据了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注