# 3.- Creando nuestro primer factory y Seed (Article)
Datos de prueba
php artisan make:factory ArticleFactory
php artisan make:seed ArticlesTableSeeder
php artisan make:seed UsersTableSeeder
- Ingresamos al archivo
database/factories/ArticleFactory.php
//Import Model User
use App\Models\User;
class ArticleFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$title = $this->faker->sentence();
return [
'title' => $title,
'slug' => Str::slug($title),
'body' => $this->faker->paragraph(),
'author_id' => $attribute['author_id'] ?? User::factory()
];
}
}
- Ingresamos al archivo
database/factories/UserFactory.php
public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
- Ingresamos al archivo
database/seeders/ArticlesTableSeeder.php
//import Model Article
use App\Models\Article;
public function run()
{
Article::factory()->count(10)->create(['author_id' => 1]);
}
- Ingresamos al archivo
database/seeders/UsersTableSeeder.php
//import Model Article
use App\Models\User;
public function run()
{
$user = User::create([
'name' => 'romacode',
'email' => 'romacode@gmail.com',
'password' => bcrypt('romacode')
]);
$user->createToken('Romacode')->plainTextToken;
User::factory()->count(5)->create();
}
- Para acabar vamos al archivo
database/seeders/DatabaseSeeder.php
Y utilizamos los archivos UsersTableSeeder y ArticlesTableSeeder para crear los datos
public function run()
{
$this->call(UsersTableSeeder::class);
$this->call(ArticlesTableSeeder::class);
}
- Para finalizar realizamos la migración para crear los datos
//"react-hook-form": "^7.34.2",
php artisan migrate:fresh --seed