如何修复此DateTime对象以在查询中工作?

如何修复此DateTime对象以在查询中工作?,datetime,doctrine-orm,symfony,Datetime,Doctrine Orm,Symfony,我在控制器中有一个私有方法,当我运行该方法并尝试在浏览器中回显结果时,它就消失了。我得到一个白色屏幕,底部没有分析器,错误日志中没有显示任何内容 这是我的完整方法。请注意,“hello”没有回显,因此它似乎在查询时消失。还要注意,表中的“created”字段是datetime类型 private function garbageCollect() { $em = $this->getDoctrine()->getManager(); $dql = 'SELECT r

我在控制器中有一个私有方法,当我运行该方法并尝试在浏览器中回显结果时,它就消失了。我得到一个白色屏幕,底部没有分析器,错误日志中没有显示任何内容

这是我的完整方法。请注意,“hello”没有回显,因此它似乎在查询时消失。还要注意,表中的“created”字段是datetime类型

private function garbageCollect()
{
    $em = $this->getDoctrine()->getManager();
    $dql = 'SELECT r FROM AppBundle:MyEntity r WHERE r.created < :created';

    $created = new \DateTime('-50 days');
    $result = $em->createQuery($dql)
        ->setParameters( array( 'created' => $created->format('Y-m-d') ) )
        ->getResult();
    echo "hello"; die; // it never echoes this out so it fails above

    ... // more code here excluded

    return true;
} 
private函数garbageCollect()
{
$em=$this->getDoctrine()->getManager();
$dql='从AppBundle:MyEntity r中选择r,其中r.created<:created';
$created=new\DateTime('-50天');
$result=$em->createQuery($dql)
->setParameters(数组('created'=>created$s->format('Y-m-d'))
->getResult();
echo“hello”;die;//它从不回显此内容,因此在上面失败
…//此处排除了更多代码
返回true;
} 

我做错了什么?

不需要将日期对象格式化为字符串。如果名为created的字段定义为一个日期时间,您可以简单地执行以下操作:

$created = new \DateTime('-50 days');
    $result = $em->createQuery($dql)
        ->setParameters( array( 'created' => $created ) )
        ->getResult();

希望获得此帮助

您不需要将日期对象格式化为字符串。如果名为created的字段定义为一个日期时间,您可以简单地执行以下操作:

$created = new \DateTime('-50 days');
    $result = $em->createQuery($dql)
        ->setParameters( array( 'created' => $created ) )
        ->getResult();

希望这能有所帮助

对于花时间查看或评论此内容的所有人,我深表歉意,我感谢您花了这么多时间。看来Symfony占用了我分配给PHP的所有内存,所以我不得不大幅增加内存。现在它似乎工作得很好。这张桌子看起来相当大。谢谢

对于所有花时间查看或评论此内容的人,我深表歉意,我感谢您花了这么多时间。看来Symfony占用了我分配给PHP的所有内存,所以我不得不大幅增加内存。现在它似乎工作得很好。这张桌子看起来相当大。谢谢

更新:我的日志文件显示以下内容作为WHERE子句:WHERE r0_u0.created<?[“2016-07-22”][]更新2:将参数更改为:->setParameters(数组('created'=>new\DateTime())仍将导致页面在尝试执行查询6秒后死亡。仍然得到一个没有输出的白色页面,没有html,什么都没有。日志文件仍然为空。Symfony的dev.log显示了在phpmyadmin中执行良好的查询。使用类似“id”<:id的内容更改创建的字段,并将id的整数放入参数中,可以使查询正常运行并输出页面。更新:我的日志文件将以下内容显示为WHERE子句:WHERE r0_u.created<?[“2016-07-22”][]更新2:将参数更改为:->setParameters(数组('created'=>new\DateTime())仍将导致页面在尝试执行查询6秒后死亡。仍然得到一个没有输出的白色页面,没有html,什么都没有。日志文件仍然为空。Symfony的dev.log显示了在phpmyadmin中执行良好的查询。使用类似“id”<:id的内容更改创建的字段,并将id的整数放入参数中,可以使查询正常运行并输出页面。WTH?即使我将参数更改为->setParameters(数组('created'=>new\DateTime()),页面在6秒后仍然会死掉,没有输出。即使我将参数更改为->setParameters(数组('created'=>new\DateTime()),页面在6秒后仍然死掉,没有输出。