php - 在 Symfony 中使用 Doctrine 的 DBAL 检索 bool 值

标签 php mysql symfony doctrine dbal

我在 Symfony 项目中使用 DBAL 来访问 Mysql 数据库中的数据。当查询带有 bool 字段(创建为 tinyint)的表时,我在 PHP 中得到了 tinyint 值,但我想得到 bool 值。

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

我认为映射转换(从 mysql 到 php)已经在 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'] 是一个 bool 值而不是整数。

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

谢谢。

最佳答案

如果不使用某些 ORM,您将无法(据我所知)定义模型类型。

解决这个问题的方法是遍历数据并转换 bool 值,例如:

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

但这离理想的解决方案还很远。

关于php - 在 Symfony 中使用 Doctrine 的 DBAL 检索 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31073142/

相关文章:

php - php 中的 fatal error (执行时间超过 60 秒)

MySql 转义\和 ' in a Like statement don' t 工作

symfony - 在 Doctrine 2 中获取自定义字段

php - Doctrine:仅使用 id 来设置相关实体

php - 是否可以在不扩展 PHPUnit_Framework_TestCase 的情况下使用 PHPUnit 断言?

php - CakePHP 3 属于多个具有默认值的列

php - 如何从 Graph API 上的 facebook 广告获取数据?

使用 REGEX 的 PHP ORM Mysql 排序

mysql - Django:你能创建一个与自动生成的直通表的关系吗?

php - Zend Framework 2 RESTful Controller 操作