Curso de Laravel para Noobs - #20 Factory
17/08/2023Nessa aula aprenderemos como popular o banco de dados do Laravel utilizando o recurso das Factories para gerar dados fictícios com apenas um comando.
Factories no Laravel
No contexto do Laravel, as "factories" são uma parte fundamental do seu sistema de teste. Elas são usadas para criar dados falsos ou fictícios para testar seus aplicativos. As factories ajudam a simular cenários do mundo real sem precisar inserir manualmente dados no banco de dados toda vez que você executa seus testes.
database/seeders/UserSeeder.php
Para executar uma factory primeiramente precisamos criar um seeder que será responsável por acioná-la:
php artisan make:seeder UserSeeder
<?php
namespace Database\Seeders;
use App\Models\Todo;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run()
{
//User::factory(10)->create();
Todo::factory(5)->create();
}
}
database/seeders/DatabaseSeeder.php
Posteriormente, precisamos acionar o seeder no DatabaseSeeder:
public function run()
{
$this->call([
UserSeeder::class
]);
}
Por fim, basta chamar o comando:
php artisan db:seed
Criando uma Factory do Zero
Para criar uma nova factory podemos usar o comando:
php artisan make:factory TodoFactory
database/factories/TodoFactory.php
A TodoFactory ficou assim:
<?php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
class TodoFactory extends Factory
{
public function definition()
{
return [
'nome'=>fake()->name(),
'votos'=>fake()->randomDigit(),
'user_id'=>User::factory()
];
}
}
Por fim, basta chamar o comando:
php artisan db:seed
Então foi isso, por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!
Precisa de suporte? webdesignemfoco@gmail.com