Php Symfony 3:条令日期时间问题行
我有一个列日期类型为的ORM\实体。使用EntityManager选择要更新的对象时,出现以下错误:“可捕获致命错误:DateTime类的对象无法转换为字符串” 专栏:Php Symfony 3:条令日期时间问题行,php,datetime,orm,doctrine,symfony,Php,Datetime,Orm,Doctrine,Symfony,我有一个列日期类型为的ORM\实体。使用EntityManager选择要更新的对象时,出现以下错误:“可捕获致命错误:DateTime类的对象无法转换为字符串” 专栏: /** * @ORM\Id * @ORM\Column(name="date", type="date") */ private $date; 以及查询: $query = $em->createQuery('SELECT t FROM AppBundle:Table t WHERE t.id = :t_id')-
/**
* @ORM\Id
* @ORM\Column(name="date", type="date")
*/
private $date;
以及查询:
$query = $em->createQuery('SELECT t FROM AppBundle:Table t WHERE t.id = :t_id')->setParameter('t_id', $tId);
$result = $query->getResult(); // <- ¡ERROR IS HERE!
非常感谢 日期/日期时间不能用作条令的唯一ID,因为它需要一个_toString()方法。您可以创建此类:
class DoctrineDateTime extends DateTime
{
public function __toString()
{
return $this->format('U');
}
}
使用此类,而不是使用DateTime对象设置“$date”字段。
对ID上的请求执行相同的操作。这就是为什么不建议使用DateTime作为唯一ID的原因之一 另一种方法是使用设置字符串类型的主键,然后执行以下操作:
$entity->setId(新的\DateTime()->格式('yyyy/mm/dd')代码>
请参阅以供参考
class DoctrineDateTime extends DateTime
{
public function __toString()
{
return $this->format('U');
}
}