PHELIPE STERING
Criador PHELIPE STERING 24/09/2021

Boa noite Professor, tudo bom ?

 

estou seguindo o curso laravel 6x porem utilizo o laravel 8x.

 

Seguindo a estrutura da aula sobre factorys e criação de registros fake para testes em banco percebi que o Lara nao reconheçe a função factory do laravel 8x, tentei fazer com a documentação do laravel e nao consegui. Voce teria alguma sugestão em que eu possa simular novamente ?

 

Muito Obrigado.

Criador PHELIPE STERING 24/09/2021

Bom dia Professor tudo bem ?

 

De novo quebrando estou quebrando a cabeça rsrs

 

Ao realizar o comando "php artisan db:seed --class=ProductTableSeeder"

 

Obtenho a seguinte resposta :

 

QUOTE

  Error

 

  Class 'Database\Factories\ProductsFactory' not found

 

  at vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:721

    717▕     public static function factoryForModel(string $modelName)

    718▕     {

    719▕         $factory = static::resolveFactoryName($modelName);

    720▕

  ➜ 721▕         return $factory::new();

    722▕     }

    723▕

    724▕     /**

    725▕      * Specify the callback that should be invoked to guess factory names based on dynamic relationship names.

 

      +1 vendor frames

  2   database/seeders/ProductTableSeeder.php:17

      App\Models\Products::factory()

 

      +22 vendor frames

  25  artisan:37

      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

UNQUOTE

Analisando o erro, vejo que ele nao encontra o ProductsFactory, de fato ele nao vai encontrar porque nao existe mesmo. Pois esta nomeado como Product (no singular) e mesmo atualizando o composer pelo dump auto-load ele insiste em procurar essa factory.

 

tentei de tudo e nao consegui resolver, chega uma hora que até irrita! kkk

 

poderia me dar uma mão ?

 

abaixo segue codigo no GIT ... Mais uma vez... meu muito obrigado!

 

https://github.com/phelipestering/CURSO-LARAVEL

 

 

PHELIPE STERING
Manager Carlos Ferreira 24/09/2021

Olá, Phelipe!
Tudo bem?

O comando está correto:
php artisan db:seed --class=ProductTableSeeder

Notei que o seu model está fora do padrão de nomes do Laravel "Products", renomeia o arquivo + nome da classe para "Product", e tente novamente.

Carlos Ferreira
Criador PHELIPE STERING 24/09/2021

Boa professor!

 

deu tudo certo e fiz mais alguns testes... Muito Obrigado de novo!

 

Só mais uma pergunta, quando vc fala que "esta fora do padrao de nomes do Laravel" nós temos que criar nossas factories de acordo com um padrão já pre-determinado pelo FrameWork?

 

Vamos em frente!

PHELIPE STERING
Manager Carlos Ferreira 24/09/2021

Sim, é recomendado trabalhar com padrões de nomes amigo, veja algumas dicas: https://www.instagram.com/especializati/

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!