2012-09-09 21 views
10

Tengo una carpeta entidad de dos niveles en un paquete de Symfony2:2 Nivel Entidad carpeta en Symfony 2

CommonBundle/Entity/EntityFolder1/EntityA.php 
CommonBundle/Entity/EntityFolder2 
CommonBundle/Entity/EntityFolder3 
CommonBundle/Entity/EntityFolder4 

Cuando intento de obtener los repositorios para una entidad que se encuentra dentro de una de las carpetas:

$product = $this->getDoctrine()->getRepository('CommonBundle:EntityA')->find(1); 

Symfony no reconoce esto CommonBundle:EntityA.

También probé con CommonBundle:EntityFolder1:EntityA.

de advertencia: class_parents(): Clase CommonBundle \ Entidad \ EntityA no lo hace existir y no puede ser cargado en

+0

No creo que sea una buena práctica crear 2 carpetas en su carpeta Entity. En realidad, no hay nada de malo en tener las 2 entidades en la misma carpeta Entity. La ruta es fácil de recordar y no tendrá que recordar la carpeta en la que se encuentra. – Mick

+4

@Patt, it * is * una buena práctica para agrupar entidades relacionadas, y no solo entidades. –

+0

Gracias @elnur ¡No sabía esto en absoluto! +1 por tu respuesta. Muchas gracias. – Mick

Respuesta

21

Es CommonBundle:EntityFolder1\EntityA.

+0

¡Lo intentaré de esta manera! Gracias – Daniel

+1

¡Funcionó! @elnur – Daniel

+0

FYI: puede que tenga que cambiar su nombre de archivo ORM yml como tal: ** EntityFolder1.EntityA.orm.yml ** – MediaVince

1

Usar el nombre de clase completo de su entidad:

$product = $this->getDoctrine() 
       ->getRepository('Acme\CommonBundle\Entity\EntityFolder1\EntityA') 
       ->find(1); 
+0

¡Lo intentaré de esta manera! Gracias – Daniel