作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下查询通过 Doctrine ORM 从表中获取列的所有值:
SELECT item.templateId FROM MyBundle:Item item WHERE item.id IN (:ids)
我知道 Doctrine 有水合模式 Query::HYDRATE_SINGLE_SCALAR
返回单个标量值。但是,当结果中有多个记录时,它会抛出 NonUniqueResultException
,这很好。
自然地,我猜测 Query::HYDRATE_SCALAR
可以解决问题。但是,它返回的结果与使用 Query::HYDRATE_ARRAY
时完全相同。
代码:
$ids = [1, 2, 3];
$query = $this->entityManager->createQuery('
SELECT item.templateId FROM MyBundle:Item item WHERE item.id IN (:ids)
')
->setParameter('ids', $ids)
;
// Regardles whether I use HYDRATE_SCALAR or HYDRATE_ARRAY
// $result is the same
$result = $query->getResult(Query::HYDRATE_SCALAR);
下面是 $result
在这两种情况下的样子:
Array
(
[0] => Array
(
[templateId] => 52
)
[1] => Array
(
[templateId] => 90
)
[2] => Array
(
[templateId] => 89
)
)
我希望它看起来如何:
Array
(
[0] => 52
[1] => 90
[2] => 89
)
我知道我可以将它转换成我想要的形式,但我想知道为什么 HYDRATE_SCALAR
的行为不像我期望的那样。
最佳答案
我认为它的行为是这样的,因为 the documentation说:
[it] can contain duplicate data.
这就是 array_column
(php 5.5) 发挥作用的时候了。
关于doctrine-orm - 学说 ORM HYDRATE_SCALAR 与 HYDRATE_ARRAY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050886/
我正在使用 Doctrine 1.2 ORM 从 symfony 1.4 项目的数据库中检索一些数据。当前使用一个简单的查询并返回: Doctrine::HYDRATE_ARRAY 有什么方法可以使用
我正在尝试使用以下查询通过 Doctrine ORM 从表中获取列的所有值: SELECT item.templateId FROM MyBundle:Item item WHERE item.id
我是一名优秀的程序员,十分优秀!