Doctrine不会使用 - > select来提取日期时间

时间:2015-12-03 18:43:38

标签: php mysql symfony doctrine-orm

我正在处理遗留交响乐项目(v2.1),并且我尝试使用doctrine来使用select语句(SessionDesign.created)来提取日期时间字段。但是,当我检查结果时,它只会提取空值。

日志说它不能转换为字符串,这很好,但是如何将select语句拉出来创建为字符串?

代码:

$query = $this->em->createQueryBuilder()
     ->select('fos_user.email, fos_user.fcid, SessionDesign.sessionID,      SessionDesign.created')
     ->from('FYPEmailsBundle:User', 'fos_user')
     ->join('fos_user.SessionDesign', 'SessionDesign')
     ->where('fos_user.emailok = true')
     ->getQuery();
      $result = $query->getArrayResult();

1 个答案:

答案 0 :(得分:0)

只有当字段映射为日期/时间字段时,Doctrine才能将日期字段自动转换为\DateTime。确保您的SessionDesign.created字段已正确映射到“datetime”类型。 Here's the list of supported doctrine mapping types

是否使用注释

/**
 * @ORM\Column(type="datetime")
 */
private $created;

或yaml

SessionDesign:
  fields:
    created:
      type: datetime

如果设置正确,则doctrine 应在数组结果中将created作为\ DateTime对象返回,而不是字符串。只需在var_dump之后$result $result = $query->getArrayResult();确定LabelEdit即可。