php – 在Symfony中使用Doctrine的DBAL检索布尔值

我在Symfony项目中使用DBAL来访问MysqL数据库中的数据.当使用布尔字段查询表(创建为tinyint)时,我在PHP中得到tinyint值,但我想得到布尔值.

不知何故,我想直接使用与Doctrine相同的映射.

我认为映射转换(从MysqLPHP)已经在DBAL中实现了,但是我不确定它是否会以这种方式工作(这个层映射值返回).

我已经尝试注册一个自定义映射,如下所示,但没有成功:

    $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();

在这种情况下,’anonymous’是MysqL中的tinyint(1)字段,但我希望$result [‘anonymous’]是布尔值而不是整数.

你知道是否可以通过Doctrine的DBAL从MySQL查询获取PHP中的布尔值?

谢谢.

解决方法:

如果不使用某些ORM,你不能(据我所知)定义模型类型.

解决这个问题的方法是迭代数据并转换布尔值,例如:

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

但这甚至不是理想的解决方案.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...