es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.”

Tags:  , , ,

Answer

  1. Avatar for 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 directorio src/, 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:

    1. Verifica el namespace de la clase de entidad Regions y asegúrate de que esté correctamente configurado.
    2. 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.

    orm:
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App
    

    Asegúrate de que el namespace de tu entidad sea App\Entity.

    1. Intenta eliminar la declaración use Doctrine\ORM\Mapping as ORM si no es necesario.
  2. Limpia la caché usando el comando php bin/console cache:clear para asegurarte de que se haya cargado la nueva configuración.

  3. Vuelve a ejecutar la consulta y verifica si el problema se ha resuelto.

  4. Estos pasos deberían resolver el problema y hacer que la consulta de la entidad funcione correctamente.

Comments are closed.