Dmt*_*Dmt 5 php mysql doctrine symfony dbal
我在Symfony项目中使用DBAL访问Mysql数据库中的数据。当查询具有布尔字段(创建为tinyint)的表时,我在PHP中获得了tinyint值,但我想获取布尔值。
不知何故,我想获得与直接使用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();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,“匿名”是Mysql中的tinyint(1)字段,但是我希望$ result ['anonymous']是布尔值而不是整数。
您是否知道可以通过Doctrine的DBAL从Mysql查询中获取PHP中的布尔值?
谢谢。
如果不使用一些,ORM你就无法(据我所知)定义模型类型。
解决此问题的方法是迭代数据并转换布尔值,例如:
$item[$i]['foobar'] = (bool)$item[$i]['foobar']
Run Code Online (Sandbox Code Playgroud)
但这还远未接近理想的解决方案。