Symfony / Doctrine:从数据库中获取第一个最大值

时间:2016-04-23 23:58:50

标签: php mysql symfony doctrine-orm

我已经被困了一段时间了:

我想通过使用DESC对“datevalidite”列进行排序,从我的表'seuils'中提取值'points'。

SQL工作正常:

SELECT points FROM seuils ORDER BY datevalidite DESC

但是我在Symonfony的控制器中实现的代码给我一个错误:

$dataSeuils = $this->getDoctrine()->getManager();
$seuils = $dataSeuils->createQuery(
    'SELECT points 
    FROM AppBundle:Seuils
    ORDER BY datevalidite DESC')->getResult();    

这是错误信息:

  

[语法错误]第0行,第53栏:错误:字符串的预期结束,得到'BY'

     

500内部服务器错误 - QueryException

     

1个链接的例外:

     

QueryException»

最后,我需要提取返回的实体的属性点。

但是我真的不明白为什么它在phpMyAdmin(SQL)中正常工作,但在Symfony中没有。

这是我创建表的SQL代码的一部分:

CREATE TABLE `seuils` (
    `points` int(11) NOT NULL,
    `datevalidite` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2 个答案:

答案 0 :(得分:1)

您可以使用存储库:

$dataSeuils = $this->getDoctrine()->getRepository('AppBundle:Seuils');

$seuils = $dataSeuils->createQueryBuilder('points')->orderBy('points.datevalidite', 'DESC')->getQuery()->getResult();

答案 1 :(得分:0)

尝试在DQL中添加表别名,如下所示:

    $seuils = $dataSeuils->createQuery(
            'SELECT s.points 
            FROM AppBundle:Seuils s
            ORDER BY s.datevalidite DESC')->getResult(); 

希望这个帮助