Tenía una clase de entidad en Aib \ PlatformBundle \ Entity \ User.php
No tuve problemas para intentar crear su clase de formulario a través de
Aplicación php / doctrina de la consola: generate: form AibPlatformBundle: User
Ahora he cambiado el espacio de nombres a Aib \ PlatformBundle \ Entity \ Identity \ User, pero cuando intento generar el formulario con la tarea que dije antes, dice:
"La clase Aib \ PlatformBundle \ Entity \ User no es una entidad válida o una 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
php
symfony
doctrine-orm
ziiweb
fuente
fuente
Respuestas:
Tuve este problema, no olvide la anotación
* @ORM\Entity
como a continuación:fuente
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 de arriba al intentar cargar la aplicación.
Al final me di cuenta de que no estaba cargando MyFooBundle en AppKernel:
Una excelente manera de depurar esto es ejecutar este comando:
fuente
Verifique su archivo config.yml, debería contener algo como esto:
Agregue su propio paquete a la lista de asignaciones.
fuente
Resolví esto pasando
false
como segundo parámetro aDoctrine\ORM\Configuration::newDefaultAnnotationDriver
.Me tomó un tiempo buscar en Google y el código fuente.
Mi caso fue 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.
Había refactorizado las entidades heredadas y dejaron de funcionar. Solían usar en
@Annotation
lugar de@ORM\Annotation
, por lo que después de la refactorización simplemente no pudo leer los metadatos. Al no usar un simple lector de anotaciones, todo parece estar bien.fuente
En mi caso, el problema se resolvió cambiando la caché de mi servidor de eAccelerator a APC . Aparentemente, eAccelerator elimina todos los comentarios de los archivos que rompen sus anotaciones.
fuente
opcache.save_comments=1
, ¿tal vez también haya una para eAccelerator / APC?Resolví este problema estableciendo
$useSimpleAnnotationReader=false
al crear elMetaDataConfiguration
.fuente
gran agradecimiento a Mark Fu y mogoman
Sabía que tenía que estar en algún lugar de config.yml ... y poder probarlo contra el
realmente ayudó!
De hecho, este comando simplemente se detiene en un error ... sin comentarios, pero cuando todo está bien, debería poder ver todas sus entidades en la lista.
fuente
Resolví la misma excepción al eliminar un archivo orm.php generado automáticamente en conflicto en la carpeta Resources / config / doctrine del paquete; según la documentación: "Un paquete solo puede aceptar un formato de definición de metadatos. Por ejemplo, no es posible mezclar definiciones de metadatos YAML con definiciones de clases de entidad PHP anotadas".
fuente
Muy alta posibilidad de que tenga PHP 5.3.16 (Symfony 2.x no funcionará con él). De todos modos, debe cargar la página de verificación en http://you.site.name/config.php Si su proyecto no funcionó en el servidor de alojamiento, las siguientes líneas deben eliminarse en "config.php":
¡Buena suerte!
fuente
En mi caso, fui demasiado entusiasta durante una refactorización y borré un archivo yml de doctrina.
fuente
En mi caso, en mi mac, estaba usando src / MainBundle / Resource / Config / Doctrine, por supuesto que funcionó en Mac pero no funcionó en el servidor Ubuntu de producción. Una vez que se renombró Config a config y Doctrine a doctrine, se encontraron los archivos de mapeo y comenzó a funcionar.
fuente
Me deshice del mismo mensaje de error que en su caso usando app / console_dev en lugar de solo app / console
fuente