We know how to use faker in Laravel. But did you know that we can use faker outside faker class, even more in any file in laravel 9 version. In this tutorial, I will show you laravel use faker outside factory. You will see how to use faker in seeder laravel 9.

For below Laravel 9 version, you can use faker in seeder like this:

Database\Seeders\CategorySeeder.php

<?php

namespace Database\Seeders;

use App\Models\Category;

use Faker\Factory as Faker;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class CategorySeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {   
        
        $faker = Faker::create();
        
        $a = 0;

        while ($a <= 10) {
            Category::create([
                'category_name' => $faker->unique()->word,
                'category_slug' => $faker->unique()->slug
            ]);
            $a++;
        }
    }
}

 

But in the Laravel 9 version, there is a global fake() helper function. So you can use it any where any file like this:

Database\Seeders\CategorySeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class CategorySeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Category::create([
            'name' => fake()->word(),
            'slug' => \Str::slug(fake()->word())
        ]);
    }
}

 

Read also: Laravel 9 Factory Seed Data With Nested Relationship

 

Conclusion

I have tried to discuss the clear concept of laravel use faker outside factory. Now we know use faker in seeder laravel 9. Hope thislaravel faker in seeder tutorial will help you.