Hola a todos!,
a la hora de trabajar en un proyecto Laravel 5 y crear un nuevo seeder lo agregamos a nuestro DatabaseSeeder, en este ejemplo hemos agregado el seeder ReportsTableSeeder quedando nuestro archivo DatabaseSeeder de la siguiente manera:
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(UsersTableSeeder::class); $this->call(ReportsTableSeeder::class); } }
Hasta acá todo bien, cuando ejecutamos
php artisan migrate --seed
En algunas ocaciones nos lanza el siguiente error:
[ReflectionException] Class ReportsTableSeeder does not exist
Acá tenemos distintas opciones, paso a enumerar las que se me ocurren en este momento:
Una vez confirmamos que todo esto esta bien y no tenemos ninguno de éstos problemas, osea, nuestro archivo existe dentro de la carpeta seeders de nuestro proyecto y el nombre de la clase es correcto la solución a esto es limpiar las cache y optimizar nuestro Loader para ello veamos la solución
Ejecutamos todos estos comandos en el siguiente orden:
php artisan optimize php artisan cache:clear php artisan route:clear php artisan view:clear php artisan config:clear
No es necesario ejecutarlos todos, pero les recomiendo hacerlo si están en fase de desarrollo.
Una vez ejecutados estos comandos uno por uno, debemos eliminar las tablas creadas anteriormente al ejecutar:
php artisan migrate --seed
Si da error, es probable que tengamos otros seeders antes de nuestro seeder no encontrado, y esto haya creado las otras tablas. Para resolver esto, accedemos a nuestra base de datos y eliminamos las tablas creadas. Una vez eliminadas las tablas, repetimos el proceso ejecutando:
php artisan migrate --seed
Y finalmente ahora si nos proceso nuestro seeder ReportsTableSeeder 😀
Espero le sirva a más de alguien.
Page loaded in 42.28 ms