php – Recuperar valores booleanos con DBAL de Doctrine en Symfony

Estoy usando DBAL en un proyecto de Symfony para acceder a los datos en una base de datos Mysql. Al consultar tablas con campos booleanos (creados como tinyint) obtengo valores de tinyint en PHP pero me gustaría obtener valores booleanos.

De alguna manera, me gustaría obtener el mismo mapeo que usar Doctrine directamente.

Pensé que la conversión de mapeo (de mysql a php) ya estaba implementada en DBAL, pero no estoy seguro de si se supone que funciona de esta manera (esta capa vuelve a asignar valores).

He intentado registrar una asignación personalizada como la siguiente, pero no tengo éxito:

    $this->conn->getDatabasePlatform()->registerDoctrineTypeMapping('tinyint', 'boolean'); 

    $sql = "
    SELECT se.survey_id, se.anonymous
      FROM survey_edition se
    ";
    $stmt = $this->conn->prepare($sql);
    $stmt->execute();

    $result = $stmt->fetch();

En este caso, ‘anónimo’ es un campo tinyint (1) en Mysql, pero me gustaría que $ resultado [‘anónimo’] sea un valor booleano en lugar de un entero.

¿Sabe si es posible obtener valores booleanos en PHP de una consulta Mysql a través de DBAL de Doctrine?

Gracias.

Mejor respuesta
Sin usar algún ORM, no puede (por lo que yo sé) definir tipos de modelos.

La forma de resolver esto sería iterar sobre los datos y emitir valores booleanos como:

$item[$i]['foobar'] = (bool)$item[$i]['foobar']

Pero esto ni siquiera está cerca de la solución ideal.

Por favor indique la dirección original:php – Recuperar valores booleanos con DBAL de Doctrine en Symfony - Código de registro