【问题标题】:how to cast COUNT return type in Doctrine如何在 Doctrine 中转换 COUNT 返回类型
【发布时间】:2017-07-24 05:36:06
【问题描述】:

我想知道是否有办法转换/转换学说返回的计数类型,

当我这样做时

$queryBuilder->select('p.idPublication,
    p.publicationName as name,
    p.publicationDescription as description,
    p.publicationPhoto as photoPublication')
 ->addSelect('(SELECT COUNT(com.idCommentaire)FROM PublicationBundle:Commentaire com
    WHERE com.publication = p.idPublication) as comments')

...

我将 cmets 作为字符串。如何将 COUNT 结果转换为 int。

谢谢大家。

【问题讨论】:

标签: php symfony doctrine-orm doctrine dql


【解决方案1】:

假设您将该查询的结果存储在 $results 变量中,那么您可以将其转换为 int,如下所示:

$intVal = (int) $results[$rowNumber]['comments']

如果您想在查询中执行强制转换,则可以将+ 0 添加到您的选择语句中。像这样:

'SELECT (COUNT(com.idCommentaire) + 0) FROM ...'

【讨论】:

  • 我刚试了不行,还是返回字符串类型
  • 当我 var_dump 结果我得到'comments' => string '3' (length=1)
  • 我认为 Doctrine 将结果作为字符串返回,除非您使用 getScalarResult() 但我认为您不能将其用于当前查询,因为您的查询也返回字符串值。您需要将计数转换为整数吗?
  • 如果有需要,我会在得到结果时在 php 中执行此操作,我只是想知道是否有类似CAST(COUNT(...) AS INTEGER 的方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 2021-04-03
  • 1970-01-01
  • 2018-06-03
相关资源
最近更新 更多