Muitas vezes volto à documentação do Laravel sempre que preciso criar novas fábricas e semeadores para meus projetos, sejam eles exercícios de aprendizagem, projetos de hobby ou aplicativos do mundo real ( entediado fazendo as mesmas ações todas as vezes). Para facilitar esse processo, decidi criar um guia que posso consultar sempre que necessário, economizando tempo e evitando a necessidade de pesquisar extensa documentação. Se este guia ajudar alguém, seria ótimo!
Vamos supor que temos um relacionamento Usuário/Postagens, o que significa que cada usuário pode ter uma ou mais postagens, e cada postagem pertence a um usuário.
O que é uma fábrica?
A Factory no Laravel é uma classe para gerar dados de teste para sua aplicação. Isso é útil para desenvolvimento local e ambientes de teste, proporcionando muitos benefícios. O Laravel permite que você crie uma fábrica para cada modelo que você possui.
O que são semeadores?
Semeadores no Laravel são usados para preencher seu banco de dados com dados usando classes de sementes, o que é especialmente útil para fins de teste.
Gerando Novas Fábricas
Para criar uma nova fábrica, execute o seguinte comando:
artesão php make:factory PostFactory
Você encontrará sua classe de fábrica no diretório database/factories. Aqui está um exemplo de definição de sua fábrica:
public function definition(): array { return [ 'title' => $this->faker->sentence, 'content' => $this->faker->paragraph, 'user_id' => User::factory(), ]; }
Gerando Semeadores
Para criar um novo semeador, execute o seguinte comando:
php artesão make:seeder PostSeeder
Você encontrará a classe seeder no diretório database/seeders. Aqui está um exemplo da função run dentro desta classe:
public function run(): void { Post::factory() ->count(20) ->create(); }
No mesmo diretório, você encontrará a classe DatabaseSeeder. Certifique-se de que inclui todos os seus seeders:
public function run(): void { // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ // 'name' => 'Test User', // 'email' => '[email protected]', // ]); $this->call([ PostSeeder::class, .., .. ]); }
Executando migrações e propagando o banco de dados
Primeiro, execute as migrações do banco de dados:
migração de artesão php
Em seguida, propague o banco de dados:
php artesão banco de dados:seed
Agora você tem os dados de teste em vigor. Aproveitar!
Postado originalmente no meu blog!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3