loading...
Cover image for How To Move Record From One Table To Another In Laravel

How To Move Record From One Table To Another In Laravel

cooldashing24 profile image Vishnu Damwala Originally published at meshworld.in ใƒป2 min read

Laravel does not have any direct method to move an entire record from one table to another. It can be done indirectly. Let's see one of the ways here in this article.

Laravel has a supporting feature for replicating or copying an entire row with the power of Model in an optimized manner.

Laravel has an inbuilt method replicate() of Model that can be used to prepare an entirely new, non-existing cloned instance of a model.

The save() method will store this new clone model into the database.

Tested with Laravel version 6 and 7.

Kindly check for your version on the official DOC for Replicating Models. This link will take you to Laravel 7 Documentation.

Example

  • In this example, assuming a use case where we want to move all those users whose last log is more than 3 years. Assuming these users as Inactive users.
  • We will follow the below steps:
    1. Create a new instance with replicate() method based on the old or original record.
    2. Store this new instance with save() method and setTable() method in new table.
    3. Delete the old record from the original table with delete() method of a model.
  Users::query()
  ->where('last_login','>', now()->subYears(3))
  ->each(function ($oldRecord) {
    $newRecord = $oldRecord->replicate();
    $newRecord->setTable('inactive_users');
    $newRecord->save();

    $oldRecord->delete();
  });

This will move all records from users table to inactive_users who has not sign in into last 3 years

We also came across this query raised by the developer at Laracast forum and reply worth checking by willsmanley.

Read the complete post on our site MeshWorld - Move Record From One Table To Another In Laravel

Read others post on our site MeshWorld

Resources

Happy ๐Ÿ˜„ coding

With โค๏ธ from ๐Ÿ‡ฎ๐Ÿ‡ณ

Posted on by:

cooldashing24 profile

Vishnu Damwala

@cooldashing24

A human being currently living in India๐Ÿ‡ฎ๐Ÿ‡ณ on Earth. Founder of MeshWorld, a web geek, an industry experienced web developer & tutor/instructor currently lives in Surat City.

Discussion

pic
Editor guide