没有映射的Doctrine 2.0本机查询

And*_*erj 4 oracle iteration native doctrine-orm

我正在编写一个小小的迁移脚本,我只是尝试更新一个元素的一个属性.我需要的结果在本地环境中没有表示,所以我需要的是一个非常简单的SQL(这里是Oracle)处理程序,我可以迭代并返回一个数组.

这可能与学说有关吗?

即我想要这样做:

$query = "SELECT t2.status FROM t2 LEFT JOIN t1 ON t1.id = t2.foreinkey";
$iterator = $connection->execute($query)->iterate();
foreach ($iterator as $array) {
    // do something with an associative array
}
Run Code Online (Sandbox Code Playgroud)

更新/解决方案:通过Corbin的提示,我想出了这个解决方案,效果非常好:

$query = "SELECT t2.status FROM t2 LEFT JOIN t1 ON t1.id = t2.foreinkey";
$iterator = $connection->query($query);
while (is_object($iterator) AND ($array = $iterator->fetch()) !== FALSE) {
        // do something with an associative array
}
Run Code Online (Sandbox Code Playgroud)

Cor*_*bin 6

http://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html如果你想做任何映射.另一种选择是从EntityManager :: getConnection获取连接对象并对其进行操作.

它返回一个你应该能够使用的Doctrine\DBAL\Connection.它具有典型的fetchColumn fetchArray fetchAssoc等.