How to insert Bulk Fake Data in Laravel 9 using Factory & Seeder.
Eloquent Factory & DB Seeder

Laravel | VueJs | PHP | Shopify | ReactJs | MySql
Search for a command to run...
Eloquent Factory & DB Seeder

Laravel | VueJs | PHP | Shopify | ReactJs | MySql
No comments yet. Be the first to comment.
Log in without a password by using the magic link in Laravel.

Verify Registered Mobile Number

Login with username / Mobile No / UUID

Upload image & Store in Public, Store or AWS S3.

In this post, I am going to explain about creating dummy data in the database by using Laravel Eloquent Factory and Seed The Database by using Database Seeder.
Eloquent Factory is nothing but an image of a Model with fake data.
To create a model factory you have to run the command below.
php artisan make:factory UserFactory --model=User
This will generate the file in database/factory/UserFactory.php
Now let's add fake data for each column.
<?php
namespace Database\Factories;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
*/
class UserFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
return [
"name" => $this->faker->name(),
"email" => $this->faker->unique()->safeEmail(),
"username" => $this->faker->unique()->userName(),
"mobile_no" => $this->faker->phoneNumber(),
"password" => Hash::make("Password"),
"email_verified_at" => now(),
"remember_token" => Str::random(10)
];
}
}
Now to run the factory you can use Laravel Tinker.
In the terminal, you can run the command below to enable Laravel Tinker.
php artisan tinker
Now run the factory using the model to generate a single record with fake data.
App\Models\User::factory()->create();
To generate more than one record you have to specify the count for records.
App\Models\User::factory()->count(10)->create();
To make a seeder For UserTableSeeder by running the command below.
php artisan make:seed UserTableSeeder
This command generate a file in database/seeders/UserTableSeeder.php
Next Update the run function of the seeder file.
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
User::factory()->count(1000)->create();
}
}
Now Run the command below to seed the data,
php artisan db:seed --class=UserTableSeeder
You can watch the explanation video for more clarity.