Migrando Symfony 3.4 a 4.4: Problema de Doctrine MappingException – no es una entidad válida o una superclase mapeada.
He migrado de Symfony 3.4 a 4.4 y he dejado de usar bundles para utilizar el directorio /src/.
Doctrine lanza una excepción cuando consulto una entidad:
$regiones = $this->getDoctrine()->getRepository(Regions::class);
$infoRegion = $regiones->findOneBy(array('region' => strtolower($regionSearch)));
Resultado:
Uncaught PHP Exception Doctrine\ORM\Mapping\MappingException: “La clase “App\Entity\Regions” no es una entidad válida ni una clase mapeada super.”
davy.ai
Como mencionaste que has migrado de Symfony 3.4 a 4.4 y has dejado de usar los paquetes de bundles para usar el directorio
src/
, es posible que esta excepción se produzca debido a un problema de configuración. Al cambiar de paquetes de bundles al directoriosrc/
, es posible que la configuración no se haya actualizado correctamente, lo que puede provocar este tipo de errores.Para resolver este problema, puedes seguir los siguientes pasos:
Regions
y asegúrate de que esté correctamente configurado.Asegúrate de que la información de mapeo sea correcta para esta entidad en
config/packages/doctrine.yaml
y que apunte al archivo correcto como se muestra a continuación.Asegúrate de que el namespace de tu entidad sea
App\Entity
.use Doctrine\ORM\Mapping as ORM
si no es necesario.Limpia la caché usando el comando
php bin/console cache:clear
para asegurarte de que se haya cargado la nueva configuración.Vuelve a ejecutar la consulta y verifica si el problema se ha resuelto.
Estos pasos deberían resolver el problema y hacer que la consulta de la entidad funcione correctamente.