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

Doctrine: Convierte campo money en entero al realizar consulta en SQL Server.

17 de agosto de 2016

Estimados.

Tengo una duda.

Realice una consulta (extrayentdo algunos campos) a una tabla de una bd con SQL Server 2008 R2 usando Doctrine.

El problema es un atributo de la tabla donde esta especificado como tipo money.

ejemplo: 10,77

Al revisar el resultado de la consulta, ese campo especifico me esta devolviendo solo la parte entera.

Valor BD Valor Consulta
10,77 10
11,03 11

Mi pregunta como puedo devolver ese campo como decimal y no como entero.

Dentro del archivo

Doctrine\DBAL\Platforms\SQLServerPlatform
 
    protected function initializeDoctrineTypeMappings()
    {
        $this->doctrineTypeMapping = array(
            ...
            'smallmoney' => 'integer',
             ...
            'money' => 'integer',
            ...  
        );
    }

Esta definido que money es entero.

Como puedo redefinir ese valor a decimal o float.

Gracias.


Respuestas

#1

Amigo con sql server nunca me he conectado con Doctrine, así q no me hagas mucho caso. Doctrine cuando hidrata y crea los objetos, parece q te lo modifica pq no concuerda con lo q tienes declarado en la entidad. En la declaración de la entidad de la tabla q consultas, el campo decláralo float con precision 2 a ver.

/**
     * @var float
     * @ORM\Column(name="amount", type="float", precision=2)
     */
    private $amount;

suerte

@jdvellon

23 agosto 2016, 16:10