Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令查询生成器~datetime_Php_Mysql_Symfony_Doctrine Orm - Fatal编程技术网

Php 条令查询生成器~datetime

Php 条令查询生成器~datetime,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我正试图在symfony2/2中创建一个简单的聊天室 为了进行测试,我每5秒检查一次新消息,因此在我的查询中,我尝试通过获取datetime大于当前值减去5秒的所有消息来获取所有消息 我尝试按以下方式执行此操作,但它返回数据库中的所有消息,而不是过去5秒钟内发布的消息 $em = $this->getDoctrine()->getManager(); $qb = $em->createQueryBuilder(); $qb->select('m')

我正试图在symfony2/2中创建一个简单的聊天室

为了进行测试,我每5秒检查一次新消息,因此在我的查询中,我尝试通过获取datetime大于当前值减去5秒的所有消息来获取所有消息

我尝试按以下方式执行此操作,但它返回数据库中的所有消息,而不是过去5秒钟内发布的消息

$em = $this->getDoctrine()->getManager();

$qb = $em->createQueryBuilder();
$qb->select('m')
                 ->from('ChatboxBundle:ChatMessage', 'm')
                 ->where(':new > :last')
                 ->setParameter('new', 'm.postdate' )
                 ->setParameter('last', new \DateTime('-5 second'), \Doctrine\DBAL\Types\Type::DATETIME);
$updatedata = $qb->getQuery()->getResult();

知道我做错了什么吗?

m.postdate
是一个字段名,因此不应作为参数传入。试试这个

$qb = $em->createQueryBuilder();
$qb->select('m')
                 ->from('ChatboxBundle:ChatMessage', 'm')
                 ->where('m.postdate > :last')
                 ->setParameter('last', new \DateTime('-5 second'), \Doctrine\DBAL\Types\Type::DATETIME);
$updatedata = $qb->getQuery()->getResult();

是的,很久以前就没有这个答案了,在Symfony 4.3中,我不得不使用
Types::DATETIME\u MUTABLE
,因为简单的
DATETIME
已经被弃用了