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

No se ejecuta correctamente consulta doctrine en entorno producción.

12 de enero de 2016

Saludos

Tengo una consulta que devuelve solicitudes hechas por los usuarios.

los parametros de la consulta es la fecha que se realizo y el tipo (1,2 ó 3) de usuario.


La consulta es sencilla.

$solicitudes = $em->getRepository('AppBundle:Solicitud')
                           ->findBy(
                                array(
                                    'fch' => $fch,
                                    'tpUsuario' => $tpUsuario 
                            ));

Al ejecutar esta consulta me arroja error en entorno de producción, pero no en entorno de desarrollo, el cual me devuelve correctamente los datos solicitados.

'tpUsuario' => $tpUsuario

al quitar el tipo de usuario (tpUsuario) de la consulta me devuelve los datos tanto en desarrollo, como en produccion.

Al comprobar el resultado anterior.

Produccion: en campo tpUsuario devuelve un null. desarrollo: devuelve todos los datos.

No se aque se debe ese error.

/**
     * @var integer
     *
     * @ORM\Column(name="tpUsuario", type="integer", nullable=true)
     */
    private $tpUsuario;
 
    public function setTpUsuario($tpUsuario)
    {
        $this->tpUsuario = $tpUsuario;
        return $this;
    }
 
    public function getTpUsuario()
    {
        return $this->tpUsuario;
    }

PD:

  1. Tambien cree una consulta en el repositorio, con los mismos resultados.
  2. Borre la cache y la sesiones de los usuarios.
  3. La version que tengo en local funciona correctamente (dev, prod). La que se encuentra en el servidor no (solo dev).

Respuestas

#1

Hola que tal?

En tu caso, yo probaría, eliminar la cache tanto de prod. como de dev. de la carpeta cache, también validaría el tipo de dato que recibe el parametro: $tpUsuario, quizás ahí hay algo que esta haciendo que se rompa en prod.

controla tanto el valor del $tpUsuario, antes del controller y estando en el controller por si en algún lado se produce un cambio que hayas pasado por alto.

Espero te sirva, saludos!

@MrXXX0323

12 enero 2016, 19:07
#2

Cuando cree la entidad no tenia definido la variable $tpUsuario y mas adelante la agregue.

La variable es un entero.

La consulta donde se rompe antes funcionaba correctamente y recibia solo la fecha como parametro. Despues le agregue el tipo de usuario.

pero el problema solo sucede en el servidor, la version que corre en local realiza la consulta y la unica diferencia con la version anterior es el campo nuevo (tpUsuario) y agregar a la consulta el tipo de usuario.

Tambien borre la cache dev y prod, ademas de borrar las sesiones de usuarios existentes.

@dariongg

12 enero 2016, 19:33
#3

Si en tu local te anda y en el servidor te anduvo un tiempo y ahora dejo de andar, yo comprobaría que tanto la entidad en tu local como en el servidor tengan el mismo código, y además en el servidor ejecutaría éste comando por consola:

si estas en symfony 2.3 o 2.6

php app/console doctrine:schema:update --force

si estas con symfony > 2.6

php bin/console doctrine:schema:update --force

Según lo que comentas, me da a entender que es probable que te hayas olvidado de actualizar la BD en el servidor ya que primero habías creado la entidad y después de un tiempo la modificaste.

Espero te sirva! :)

@MrXXX0323

12 enero 2016, 23:17