xxxxxxxxxx
php artisan make:factory UserFactory --model=User
xxxxxxxxxx
// factories
// PostFactory.php
'title' => $this->faker->text(20),
// seeders
// PostSeeder.php
Post::factory(20)->create();
// seeders
// DatabaseSeeder.php
$this->call(PostSeeder::class);
>>php artisan migrate::fresh --seed
xxxxxxxxxx
1.make factoryu
php artisan make:factory UserFactory --model=User
2.make seeder
php artisan make:seed UserTableSeeder
xxxxxxxxxx
namespace Database\Seeders;
use App\Models\Category;
use App\Models\Post;
use App\Models\User;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$users = User::factory(2)->create();
$categories = Category::factory(3)->create();
Post::factory(3)->create([
'user_id' => $users[0]->id,
'category_id' => $categories[0]->id
]);
Post::factory(1)->create([
'user_id' => $users[1]->id,
'category_id' => $categories[0]->id
]);
}
}
seeder vs factory laravel
xxxxxxxxxx
Database seeder is used to populate tables with data.
Model factories is a convenient centralized place to define how your models should be populated with fake data.
In seeder class you would leverage model factories, and model factories will most likely use another library to generate random fake data, such as fzaninotto/faker.