我正在处理遗留交响乐项目(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();
答案 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
即可。