首页 > 解决方案 > 插入今天日期原则

问题描述

我创建了一个 symfony 项目并且遇到了日期问题。我想提出一个在数据库中插入当前日期的请求。在我的实体中,我的字段是日期时间。

存储库:

 /**
 * @ORM\Column(type="datetime", nullable=true)
 */
private $date_maj;

控制器 :

 $qb = $this->getDoctrine()
        ->getManager()
        ->createQueryBuilder()
        ->update(Tache::class, 't')
        ->set('t.date_maj', date(('Y-m-d H:i:s'), time()))
        ->where('t.id = :id')
        ->setParameter('id', $id)
        ->getQuery()
        ->execute();

错误 :

[Syntax Error] line 0, col 87: Error: Expected end of string, got '06'

标签: phpsymfonydatedoctrinequery-builder

解决方案


您想设置一个以 PHP\DateTime为值的参数,类似于:idwhere 子句。查询生成器将处理转换为数据库字符串值:

$now = new \DateTime();
$qb = $this->getDoctrine()
    ->getManager()
    ->createQueryBuilder()
    ->update(Tache::class, 't')
    ->set('t.date_maj', ':now')
    ->where('t.id = :id')
    ->setParameter('now', $now)
    ->setParameter('id', $id)
    ->getQuery()
    ->execute();

推荐阅读