
Laravel clone model
You can create a clone of model in Laravel using the replicate() method. You can get the model instance using find() method or you can also create a model instance using create() method after that you can create a new clone from that model using replicate() method.
Use below code to create a duplicate record in users table of Laravel application. You have to just place the code in your controller's method. It will create an another record in your users table.
User::find($id)->replicate()->save();
You can also clone a record to another table when you have model instances that share many of the same attributes. You may create an unsaved copy of an existing model instance using the replicate method and save to another model.
Here we have an address model and we have created a record in addresss table using create() method and after that we have created a duplicate record from it using replicate() method and update the "type" column value with "billing" and save the record in billing table.
$shipping = Address::create([
'type' => 'shipping',
'line_1' => '123 Example Street',
'city' => 'Victorville',
'state' => 'CA',
'postcode' => '90001',
]);
$billing = $shipping->replicate()->fill([
'type' => 'billing'
]);
$billing->save();
-
Make Copy or Duplicate table row in laravel using replicate method
--PATH app\Http\Controllers\<YourController.php>Post::find($id)->replicate()->save();
This code snippet makes an exact copy or duplicate table row in laravel, and saves it into the database with unique id value (which is a primary id of table with auto increment) and it changes the created_at and updated_at field value with current timestamp value as per your table structure.
-
Clone model and modify existing data in laravel
--PATH app\Http\Controllers\<YourController.php>$new_title = "This is a new title for post"; $new_data = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes"; $post = Post::find($id); $newPost = $post->replicate(); $newPost->title = $new_title; $newPost->data = $new_data; $newPost->save();
Clone model and modify existing data in laravel, If you want to make a copy of a row in a table and also change some column data before saving it to the database. You can change it by assigning a value to column using column name on a newly created model instance after replicate method. All the values of columns of the newly created post will be the same except the title and data or changed as per your table structure like id (which is a primary key with auto increment), created_at and updated_at fields (current timestamp).
-
Replicate model and it’s relationship
--PATH app\Http\Controllers\<YourController.php>$post = Post::find($id); $newPost = $post->replicate(); $newPost->push(); foreach($post->tags as $tag) { $newPost->tags()->attach($tag); } foreach($post->categories as $category) { $newPost->categories()->attach($category); }
If your post has categories and tags. You can copy it and save it to the database. You can use the attach() method on a models relation, to insert categories and tags on the pivot table to the newly created record. You have to get id of post which you want to make duplicate and assign to $id variable.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
Don't forget to share this article! Help us spread the word by clicking the share button below.
We appreciate your support and are committed to providing you valuable and informative content.
We are thankful for your never ending support.
Random Code Snippet Queries: Laravel
- Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0"
- How to check find method executed successfully in laravel
- How to pass two variables in HREF in laravel
- Create project table with model and migration
- Update existing pivot table data in laravel
- Redirect from www to non www in laravel using htaccess
- Laravel create table migration with model
- How to get list of all views file in laravel
- Argument 1 passed to App\Http\Controllers\Auth\LoginController::authenticated() must be an instance of App\Http\Controllers\Auth\Request
- How to use bootstrap pagination in laravel 8
- Get Array of IDs from Eloquent Collection
- Root composer.json requires php ^7.3 but your php version (8.0.0) does not satisfy that requirement
- Add class to body in laravel view
- If no route matched route::fallback in laravel
- How to disable timestamps in laravel
- Attempt to read property "avatar" on null in Laravel
- Get comma separated email from input array
- Ignore Records where a field has NULL value in Laravel
- Get last year created records in Laravel
- Laravel get all records with pagination
- Ajax GET request in laravel
- Generate random string lowercase in Laravel
- Composer create project laravel/laravel example app
- Get current month records in laravel 7/8
- How to add dynamic page title in Laravel view