Symfony 通过 DATEDIFF 查找
Symfony findBy DATEDIFF
我正在尝试像这样获取日期大于 4 周的所有条目
$oRepoArticleImage->findBy(array('deletedAt' => 'DATEDIFF(now(), deletedAt) > 4'));
我收到以下错误。我做错了什么?
PHP Fatal error: Call to a member function format() on a non-object
in
.../vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php
on line 53
查找方式总是需要一个键值数组。在您的情况下,您正在尝试使用字符串作为 DateTime 对象。这是行不通的。要获得预期的结果,您必须使用这样的查询构建器:
$now = new \DateTime();
// four weeks in days (28)
$daysAgo = $now->sub(new \DateInterval('P28D'));
$images = $oRepoArticleImage->createQueryBuilder('i')
->where('i.deletedAt < :date')
->setParameter('date', $daysAgo)
->getQuery()
->getResult();
我正在尝试像这样获取日期大于 4 周的所有条目
$oRepoArticleImage->findBy(array('deletedAt' => 'DATEDIFF(now(), deletedAt) > 4'));
我收到以下错误。我做错了什么?
PHP Fatal error: Call to a member function format() on a non-object in .../vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php on line 53
查找方式总是需要一个键值数组。在您的情况下,您正在尝试使用字符串作为 DateTime 对象。这是行不通的。要获得预期的结果,您必须使用这样的查询构建器:
$now = new \DateTime();
// four weeks in days (28)
$daysAgo = $now->sub(new \DateInterval('P28D'));
$images = $oRepoArticleImage->createQueryBuilder('i')
->where('i.deletedAt < :date')
->setParameter('date', $daysAgo)
->getQuery()
->getResult();