query generate php symfony doctrine2

php - generate - "Clase XXX no es una entidad válida o superclase mapeada" después de mover la clase en el sistema de archivos



symfony 3.4 doctrine query (10)

En mi caso, el problema se resolvió cambiando la memoria caché de mi servidor de eAccelerator a APC . Aparentemente eAccelerator quita todos los comentarios de los archivos que rompen sus anotaciones.

Tuve una clase de entidad en Aib / PlatformBundle / Entity / User.php

No tuve problemas tratando de crear su clase de forma a través de

doctrina de php app / console: generate: form AibPlatformBundle: User

Ahora he cambiado el espacio de nombres a Aib / PlatformBundle / Entity / Identity / User, pero cuando trato de generar el formulario con la tarea que dije antes, dice:

"Class Aib / PlatformBundle / Entity / User no es una entidad válida ni superclase mapeada".

Este es el contenido del archivo:

<?php namespace Aib/PlatformBundle/Entity/Identity; use Doctrine/ORM/Mapping as ORM; /** * Aib/PlatformBundle/Entity/Identity/User * * @ORM/Table() * @ORM/Entity(repositoryClass="Aib/PlatformBundle/Entity/Identity /UserRepository") */ class User { ...

¿Alguna idea?

symfony2.0.4


Lo resolví pasando false como el segundo parámetro a Doctrine/ORM/Configuration::newDefaultAnnotationDriver .

Me llevó un tiempo hurgar en Google y el código fuente.

Mi caso era algo especial ya que estaba usando una asignación que apuntaba a otro directorio no relacionado con la instalación de Symfony ya que también tenía que usar código heredado.

Refactored las entidades heredadas y dejaron de funcionar. Solían usar @Annotation lugar de @ORM/Annotation , por lo que después de refactorizar simplemente no se @ORM/Annotation leer los metadatos. Al no usar un lector de anotaciones simple, todo parece estar bien.


Me deshice del mismo mensaje de error que en su caso al usar app / console_dev en lugar de solo app / console


Posibilidad muy alta de tener PHP 5.3.16 (Symfony 2.x no funcionará con él). De todos modos, deberías cargar la página de verificación en http://you.site.name/config.php Si tu proyecto no funcionó en el servidor de hosting, las siguientes líneas deben eliminarse en "config.php":

if (!in_array(@$_SERVER[''REMOTE_ADDR''], array( ''127.0.0.1'', ''::1'', ))) { header(''HTTP/1.0 403 Forbidden''); exit(''This script is only accessible from localhost.''); }

¡Buena suerte!


Resolví la misma excepción al eliminar un archivo conflictivo autogenerado orm.php en la carpeta Resources / config / doctrine del paquete; de acuerdo con la documentación: "Un paquete puede aceptar solo un formato de definición de metadatos. Por ejemplo, no es posible mezclar las definiciones de metadatos YAML con definiciones de clase de entidad PHP anotadas".


Tenía este problema, no olvides la anotación * @ORM/Entity como a continuación:

/** * Powma/ServiceBundle/Entity/User * * @ORM/Entity * @ORM/Table(name="users") */


Tuve este problema ayer y encontré este hilo. Creé la entidad con la asignación en un nuevo paquete (por ejemplo, MyFooBundle / Entity / User.php), hice toda la configuración de acuerdo con los documentos pero obtuve el mismo error desde arriba cuando intento cargar la aplicación.

Al final me di cuenta de que no estaba cargando MyFooBundle en AppKernel:

new My/FooBundle/MyFooBundle()

Una buena forma de depurar esto es ejecutar este comando:

app/console doctrine:mapping:info


Verifique su archivo config.yml, debería contener algo como esto:

# Doctrine Configuration doctrine: dbal: driver: %database_driver% host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% charset: UTF8 types: json: Sonata/Doctrine/Types/JsonType orm: auto_generate_proxy_classes: %kernel.debug% # auto_mapping: true entity_managers: default: mappings: FOSUserBundle: ~ # ApplicationSonataUserBundle: ~ YourUserBundle: ~ SonataUserBundle: ~

Agregue su propio paquete a la lista de asignaciones.


gran thx a Mark Fu y mogoman

Sabía que tenía que estar en algún lugar del config.yml ... y poder probarlo contra el

app/console doctrine:mapping:info

realmente ayudó!

De hecho, este comando simplemente se detiene ante un error ... no hay comentarios, pero cuando todo está bien, debería poder ver todas sus entidades en la lista.


$useSimpleAnnotationReader=false este problema estableciendo $useSimpleAnnotationReader=false al crear la MetaDataConfiguration .