Foros del Web » Programando para Internet » PHP » Zend »

Extraño error al recuperar entidad con doctrine

Estas en el tema de Extraño error al recuperar entidad con doctrine en el foro de Zend en Foros del Web. Hola: Hoy me paso algo muy extraño, trabajo en un servidor linux, cree un nuevo repositorio e intento recuperar una entidad en dicho repositorio pero ...
  #1 (permalink)  
Antiguo 22/08/2013, 15:24
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Extraño error al recuperar entidad con doctrine

Hola:

Hoy me paso algo muy extraño, trabajo en un servidor linux, cree un nuevo repositorio e intento recuperar una entidad en dicho repositorio pero extrañamente no me recupera nada, puse un traceo y detuve el sistema pero tampoco me imprime nada:
Cita:
$documentoid = $this->em->find ( 'Application\Entity\Documento', $doc );
Si existiera algún problema simplemente debería mostrarme algún warning, asi que puse esto juste despues del anterior código
Cita:
$documentoid = $this->em->find ( 'Application\Entity\Documento', $doc );
echo'<pre>'; var_dump($documentoid); echo $doc; exit();
Pero tampoco muestra nada, en este otro caso:
Cita:
$documentoid = $this->em->find ( 'Application\Entity\Documento', $doc );
echo'<pre>'; echo $doc; exit();
si se detiene el sistema
  #2 (permalink)  
Antiguo 22/08/2013, 15:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Extraño error al recuperar entidad con doctrine

Si se para es seguramente por que ocurrió un Fatal Error, deberías de revisar el log de errores de PHP, o de Apache, depende de como tengas configurado el php para ver la causa de dichos errores.

Saludos.
  #3 (permalink)  
Antiguo 22/08/2013, 16:09
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

Gracias por tu pronta respuesta.

No precisamente se detiene, justo despues de dicha linea de código, lo que hago es guardar en la BD, Y si Guarda el registro, pero sin las entidades que requiero, esos campos simplemente están por defecto Null.
  #4 (permalink)  
Antiguo 22/08/2013, 16:53
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

Realmente no se que esta pasando, hice la prueba de obtener otra Entidad Documento, en el cual tengo 5 registros 367,400,401,406,663

y realice las siguientes pruebas y si funcionan aunque con los registros 367,400,401,406
Código PHP:
        $item $this->em->find 'Application\Entity\Documento'406 );
        
var_dump($item); 
Imprimo $item y si me muestran los datos

Pero extrañamente no sucede nada con el registro 663, es decir al parecer existe un error interno de doctrine que no se muestra, por que despues de ese codigo imprimo alguna otra cosa y no se imprime nada es como si en dicha linea de codigo se detuviera el sistema, mas extraño aún es cuando despues de obtener la entidad realizo un flush() pero si guarda el registro en la BD.

Verifique las referencias de dicha tabla, y tienen referencias a otras 2 tablas, no tengo idea de que pueda ocacionar dicho problema.
  #5 (permalink)  
Antiguo 23/08/2013, 07:50
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

habilité el log de errores de php y muestra este error
Cita:
[23-Aug-2013 09:47:26 America/La_Paz] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 108789761 bytes) in /opt/aplicaciones/htdocs/gdbcb/library/Application/Entity/Repositories/SeguimientoRepository.php on line 44
pero es de la impresion de la entidad que intento recuperar
Cita:
$docid = $this->em->find('Application\Entity\Documento', $doc);
var_dump($docid);
Lamentablemente no obtengo ningún otro warning o error.
  #6 (permalink)  
Antiguo 23/08/2013, 08:31
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

Encontré el problema pero no la solución, Mi Entidad Documento tiene referencia a otras Entidades, en mi caso a formato y cargo_acredit, eliminé las erferencias de estas otras entidades en la entidad Documento y funciona, pero eso no es la solución, necesito dichas referencias, por lo tanto la consulta sería.

Cómo obtener una entidad que hace referencia a otra entidad?

Última edición por wilmer30; 23/08/2013 a las 08:52
  #7 (permalink)  
Antiguo 23/08/2013, 10:12
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

Pues puse esto:
Cita:
$formato = $this->em->find ( 'Application\Entity\Formato', 1 );
$docid = $this->em->find('Application\Entity\Documento', $doc);
ahora si me imprime con var_dump($docid), pero al hacer el flush() no guarda el id de la entidad
  #8 (permalink)  
Antiguo 23/08/2013, 11:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Extraño error al recuperar entidad con doctrine

Pues si te estas acabando la memoria es recomendable incrementar, ahora si el problema son las referencias es porque estas cargando todo ¿que tipo de Loading estas usando? Te recomiendo usar Extra Lazy Loading.

De todas maneras puedes leer esto para mejorar el desempeño de Doctrine:
http://docs.doctrine-project.org/en/...rformance.html

Saludos.
  #9 (permalink)  
Antiguo 23/08/2013, 12:29
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Extraño error al recuperar entidad con doctrine

Leí el link, y cambie la Entidad Documento que hace referencia a la Entidad Formato

Cita:
/**
/**
* @var \Application\Entity\Formato
*
* @ORM\ManyToOne(targetEntity="Application\Entity\Fo rmato", fetch="EXTRA_LAZY")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="formato_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
* })
*/
private $formato;
Pero sigue sin guardar el id de la entidad en la base de datos

Etiquetas: doctrine, entidad, extraño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:53.