Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Error al ejecutar comandos referente a Doctrine en Symfony 2.1

6 de abril de 2016

Saludos.

Al ejecutar comando para crear una entidad o al actualizar la base de datos me arroja este mensaje. Solo sucede con los comandos relacionados con Doctrine.

[ErrorException]                                                             
  Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\dev\ven  
  dor\doctrine\common\lib\Doctrine\Common\Persistence\Mapping\Driver\Annotati  
  onDriver.php line 153

El problema surge de este código:

//AnnotationDriver.php line 153
 
    /**
     * Whether the class with the specified name is transient. Only non-transient
     * classes, that is entities and mapped superclasses, should have their metadata loaded.
     *
     * A class is non-transient if it is annotated with an annotation
     * from the {@see AnnotationDriver::entityAnnotationClasses}.
     *
     * @param string $className
     * @return boolean
     */
public function isTransient($className)
{
        $classAnnotations = $this->reader->getClassAnnotations(new \ReflectionClass($className));
 
        foreach ($classAnnotations as $annot) { // AQUI 
            if (isset($this->entityAnnotationClasses[get_class($annot)])) {
                return false;
            }
        }
        return true;
}

Revisando los valores que devuelve $classAnnotations, cada vez que es llamada la función isTransient, la variable recibe un array hasta que el valor es 1 y después de eso arroja el error. Tambien arrojo que cuando especificaba --em=default me arroja el error, pero no cuando especifico --em=otraBD.

Me podrían ayudar.


Respuestas

#1

La causa más probable es que no hayas configurado bien las anotaciones en alguna de tus entidades de Doctrine. También revisa que el contenido del archivo app/autoload.php sea correcto en lo reference al AnnotationsRegistry de Doctrine (aquí puedes ver sus contenidos correctos para Symfony 2.1).

@javiereguiluz

7 abril 2016, 8:50