php - seeds - reflectionexception class does not exist in file
ReflectionException: Class ClassName no existe-Laravel (14)
Tan pronto como estoy escribiendo php artisan db:seed
command.
Me da un error como:
[ReflectionException]
La clase UserTableSeeder no existe
root@dd-desktop:/opt/lampp/htdocs/dd/laravel# php artisan db:seed
Aquí, está mi página UserTableSeeder.php
y DatabaseSeeder.php
UserTableSeeder.php
<?php
use Illuminate/Database/Seeder;
use Illuminate/Database/Eloquent/Model;
class UserTableSeeder extends Seeder
{
public function run()
{
DB::table(''users'')->delete();
User::create(array(
''name'' => ''Chris Sevilleja'',
''username'' => ''sevilayha'',
''email'' => ''[email protected]'',
''password'' => Hash::make(''awesome''),
));
}
}
DatabaseSeeder.php
<?php
use Illuminate/Database/Seeder;
use Illuminate/Database/Eloquent/Model;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//Model::unguard();
Eloquent::unguard();
$this->call(''UserTableSeeder'');
//$this->call(UserTableSeeder::class);
//Model::reguard();
}
}
Me refiero a este Link para diseñar y desarrollar la página de inicio de sesión. Por favor, ayúdame a resolver este problema. Gracias.
Cuando está buscando el archivo de la clase seeder, puede ejecutar el compositor dump-autoload . Cuando lo ejecuta nuevamente y está buscando el Modelo, puede hacer referencia al mismo en el archivo de la sembradora. Al igual que,
use App/{Model};
Debe asignarlo a un espacio de nombre para que se encuentre.
namespace App/Http/Controllers;
He recreado la clase, y funcionó. Copie todo el contenido del archivo, elimine el archivo y ejecute php artisan make:seeder ModelTableSeeder
. Porque el composer dump-autoload
no funcionó para mí.
No está estrictamente relacionado con la pregunta, pero recibió el error ReflectionException: Class config does not exist
.env
una nueva variable .env
con espacios en ella. Ejecutando php artisan config:clear
me dijo que cualquier variable .env
con espacios debería estar rodeada por "
s "
.
¿Esta y mi aplicación indicaron que funcionaba nuevamente, no es necesario que la configuración esté clara y todavía está en desarrollo en Laravel Homestead (5.4)
No estoy escribiendo como la respuesta para esta pregunta. Pero quiero ayudar a otros si enfrentan el mismo error, pero las respuestas mencionadas aquí no funcionan. También probé todas las soluciones mencionadas aquí. Pero mi problema fue con el espacio de nombres que utilicé. El camino fue incorrecto
El espacio de nombres que utilicé es:
namespace App/Http/Controllers;
Pero en realidad el controlador reside dentro de una carpeta llamada '' FrontEnd ''
entonces la solución es cambiar el espacio de nombres a:
namespace App/Http/Controllers/Frontend;
Por alguna razón tuve que ejecutar el composer dumpautoload -o
. Aviso bandera -o
que significa con optimización. No tengo idea de por qué funciona solo con eso, pero pruébalo. Quizás ayuda a alguien.
Puede intentar escribir la app
en mayúsculas, así que la App
. Trabajó para mi.
Realiza una composer update
, luego el composer dump-autoload
.
Si lo anterior no resuelve el problema , cambie el classmap
de classmap
en su archivo composer.json
modo que contenga la ruta relativa al proyecto para sus archivos php:
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"database/seeds/UserTableSeeder.php" //include the file with its path here
]
}, /** ... */
y poco después, realiza un composer dump-autoload
, ¡y debería funcionar ahora como una brisa !
Editar por @JMSamudio
Si el composer dump-autoload
no se encuentra, simplemente active esta opción composer config -g -- disable-tls true
.
Según mi experiencia, esto aparecerá la mayor parte del tiempo cuando la clase a la que intentas llamar tiene algunos errores y no se puede compilar. Verifique si la clase que no se está reflejando se puede ejecutar por sí misma.
Tengo el mismo problema con una class
. Intento composer dump-autoload
y php artisan config:clear
pero no resuelvo mi problema.
Luego decidí leer mi código para encontrar cualquier problema, luego encontré el problema. El problema en mi caso es que solo falta una coma en mi clase. Ver mi código de modelo:
{
protected
$fillable = [''agente_id'', ''matter_id'', ''amendment_id'', ''tipo_id''];
public
$rules = [
''agente_id'' => ''required'', // <= See the comma
''tipo_id'' => ''required''
];
public
$niceNames = [
''agente_id'' => ''Membro'', // <= This comma is missing on my code
''tipo_id'' => ''Membro''
];
}
Tuve este problema y pude resolverlo haciendo php artisan config:cache
. El problema era que ya había ejecutado ese comando anteriormente y luego incluí algunas nuevas clases de semillas. Las configuraciones en caché no reconocieron las nuevas clases. Entonces, ejecutar ese comando nuevamente funcionó.
Si te ves haciendo cambios frecuentes para incluir nuevas clases de semillas, considera ejecutar php artisan config:clear
. Esto le permitirá realizar todos los cambios que desee y luego, después de las pruebas, puede ejecutar config:cache
nuevo para que las cosas funcionen de manera óptima nuevamente.
Un composer dump-autoload
debería arreglarlo.
intenta usar el siguiente comando
php artisan db:seed --class=DatabaseSeeder
composer dump-autoload
esto lo arreglará