我已经被困了一段时间了:
我想通过使用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;
答案 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();
希望这个帮助