Factorías en Laravel 8

Fecha de publicación: septiembre 8, 2020

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on whatsapp
WhatsApp
Share on email
Email

Las factorías en Laravel 8 han sufrido un cambio, ahora, en lugar de utilizar el objeto $factory cómo lo hacíamos en versiones anteriores, pasan a ser clases con la siguiente definición:

De esta forma, ahora deberemos decirle a la clase Factory qué modelo debe utilizar y definir el método definition haciendo un return de los datos que representen un objeto de tipo usuario en este caso, todo ello accediendo directamente a $this->faker.

Utilizar las nuevas Factorías en Laravel 8

Para utilizar las nuevas factorías en Laravel 8 desde los Seeds simplemente debemos hacer lo siguiente:

Factorías en diferentes Namespaces

Un problema con el que nos podemos encontrar es que nuestras factorías estén en otro namespace en lugar de Database\Factories. Para solucionarlo, simplemente deberíamos sobrescribir el método newFactory de nuestro modelo de la siguiente forma, ejemplo sacado de un proyecto Multi Tenancy:

Con todo lo anterior tendríamos nuestro proyecto funcionando con factorías de la misma forma que lo hacíamos en versiones anteriores.

 

¿Quieres acceder a más de 100 cursos de PHP y JavaScript?

Vuejs, Laravel, NodeJS, WordPress, Serverless, React Native, Amazon Web Services y mucho más

Quiero hacerme Premium
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login