Laravel 11 Factory Generate Dummy Data Example

Laravel 11 Factory seeders; Through this tutorial, i am going to show you how create/generate dummy data into database table using the factory and seeders in Laravel 11 app.

If you want to add thousand of dummy or fake records into database, so you can easily geneate or create dummy records into database table using factory seeders and faker in Laravel 11. So, you will not add manually thousands of records then it can be take more time.

Laravel 11 Factory Generate Dummy Data Example

Use the below given steps to generate dummy data using factory in Laravel 11 apps:

  • Step 1 – Install Laravel 11 App
  • Step 2 – Database Configuration
  • Step 3 – Create Model and Migration
  • Step 4 – Create Factory
  • Step 5 – Create Dummy Data By Factory Command

Step 1 – Install Laravel 11 App

In step 1, install or download Laravel 11 application, so open terminal or command prompt and run the following command to install fresh Laravel 11 app:

composer create-project --prefer-dist laravel/laravel blog

Step 2 – Database Configuration

In step 2, configure database details in .env file:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db name
DB_USERNAME=db user name
DB_PASSWORD=db password

Step 3 – Create Model and Migration

In step 3, create one model and migration name Post using the following command:

php artisan make:model Post -m

After that, open create_posts_table.php file, which is located inside /database/migrations/ directory. And add the following code in it:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('description');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Then, open Post.php file which is located inside app/Models directory. And add the following code into it:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    protected $fillable = [
        'title', 'description'
    ];
}

Step 4 – Create Factory

In setp 4, create factory class named PostFactory by using the following command:

php artisan make:factory PostFactory --model=Post

Then open PostFactory.php file, which is located inside database/factories/ directory. And update the following code in it:

<?php

namespace Database\Factories;

use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;

class PostFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Post::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'title' => $this->faker->title,
            'description' => $this->faker->text,
        ];
    }
}

The run the following command on command prompt to auto load dependencies:

composer dump-autoload

Step 5 – Create Dummy Data By Factory Command

In step 5, open command prompt and run artisan tinker command and then run create dummy data factory command to generate dummy data into database table:

php artisan tinker

Post::factory()->count(20)->create()

Recommended Laravel Tutorials

Leave a Comment