- Published on
doctrine教程9---选择特定字段
原创文章,转载时需取得本人同意并注明来源
- Authors
-
-
- Name
- langziyang
-
如果我想查同时查平均数呢,我们可以添加一个逗号然后写AVG函数,或者使用addSelect()方法,可能看起来更好一些,
$result = $this->createQueryBuilder('fortuneCookie')
->select('SUM(fortuneCookie.numberPrinted) AS fortunesPrinted')
->addSelect('AVG(fortuneCookie.numberPrinted) fortunesAverage')
可以看到AS是可选的,然后我们想看category名称时我们不再从对象中获取,而是添加到查询中
->addSelect('category.name')
但是我们会得到一个错误:
[Semantical Error] line 0, col 110 near 'category.name': Error: 'category' is not defined.
因为我们还没有JOIN,所以添加join代码
->innerJoin('fortuneCookie.category', 'category')
因为现在会返回多个数据,所以我们要把->getSingleScalarResult()修改为->getSingleResult()
其实把category名称这样查出来根本没有必要,毕竟我们只显示了名称,但如果还选择了iconKey,那么我们就有可能完全避免查询 Category 对象。然而,虽然这可能会让我们的页面更快一点,但它几乎肯定是矫枉过正,并使我们的代码更加混乱。使用对象是最好的!
现在我们在调试栏可以看到有两条查询,这是正常的