Php 赢得';t使用->;选择
我正在从事一个传统的symphony项目(v2.1),我正试图使用doctrine使用select语句(SessionDesign.created)提取一个日期时间字段。但是,当我检查结果时,它只提取空值 日志说它不能转换为字符串,这很好,但是如何让select语句作为字符串创建呢 守则:Php 赢得';t使用->;选择,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我正在从事一个传统的symphony项目(v2.1),我正试图使用doctrine使用select语句(SessionDesign.created)提取一个日期时间字段。但是,当我检查结果时,它只提取空值 日志说它不能转换为字符串,这很好,但是如何让select语句作为字符串创建呢 守则: $query = $this->em->createQueryBuilder() ->select('fos_user.email, fos_user.fcid, SessionD
$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();
仅当字段映射为日期/时间字段时,条令才能将日期字段自动转换为
\DateTime
。确保您的SessionDesign.created
字段正确映射到“datetime”类型
是否使用注释
/**
* @ORM\Column(type="datetime")
*/
private $created;
或亚马尔
SessionDesign:
fields:
created:
type: datetime
如果设置正确,则在数组结果中,应该返回
创建的
作为\DateTime对象,而不是字符串。只需在$result=$query->getArrayResult()之后的$result
上进行var_dump
代码>当然。仅当字段映射为日期/时间字段时,条令才能将日期字段自动转换为\DateTime
。确保您的SessionDesign.created
字段正确映射到“datetime”类型
是否使用注释
/**
* @ORM\Column(type="datetime")
*/
private $created;
或亚马尔
SessionDesign:
fields:
created:
type: datetime
如果设置正确,则在数组结果中,应该返回创建的
作为\DateTime对象,而不是字符串。只需在$result=$query->getArrayResult()之后的$result
上进行var_dump
代码>请确认。实体设置为,但仍会显示错误。在服务器端,我得到:“无法将日期时间对象转换为字符串”/***@var datetime$created**@Gedmo\timestable(On=“create”)*@ORM\Column(type=“datetime”,nullable=true)*/private$created;stacktrace是否直接指向getArrayResult
行?您使用的doctrine2版本是什么?因为它看起来不正确,所以我测试了答案中的代码,它在原则2.5中运行良好。版本是2.1.6。SQL的错误日志中的堆栈跟踪。实体设置为,但它仍然给出错误。在服务器端,我得到:“无法将日期时间对象转换为字符串”/***@var datetime$created**@Gedmo\timestable(On=“create”)*@ORM\Column(type=“datetime”,nullable=true)*/private$created;stacktrace是否直接指向getArrayResult
行?您使用的doctrine2版本是什么?因为它看起来不正确,所以我测试了答案中的代码,它在原则2.5中运行良好。版本是2.1.6。SQL错误日志中的堆栈跟踪。