July 13, 2024 laravel

Cara Menduplikasi Data di Laravel

Laravel menyediakan method replicate pada eloquent model untuk menduplikasi data pada database.

Cara menggunakannya cukup mudah, pertama ambil data yang akan diduplikasi, misalnya data User.

$user = User::firstWhere('email', 'admin@admin.com');

Lalu tinggal panggil method replicate dari data yang sudah diambil dan panggil method save untuk menyimpannya ke database.

$newUser = $user->replicate();
$newUser->save();

Jika data yang diduplikasi ingin diubah atributnya, misa langsung diubah atributnya atau menggunakan method fill.

$newUser = $user->replicate();

$newUser->email = 'new-admin@admin.com';
// atau
$newUser->fill([
    'name' => 'New Admin'
]);

$newUser->save();

Jika tidak semua atribut dari data yang lama ingin diduplikasi, masukkan atribut-atribut tersebut ke argumen method replicate. Contoh disini user yang diduplikasi tidak mengikuti atribut email_verified_at dan password dari data yang laman.

$newUser = $user->replicate(['email_verified_at', 'password']);

$newUser->save();

dd($user->verified_at, $newUser->verified_at) // true, false

Sumber : https://laravel.com/docs/11.x/eloquent#replicating-models