Error: Expected Literal, got '*' in Doctrine

Error: Expected Literal, got '*' in Doctrine

我想检索快递单中的行数 table。

在我的装置中,我有这些行:

$query = $this->em->createQuery('SELECT count(*) FROM App\Entity\Courrier');
$countCourrier = $query->getResult();

我做的时候有这些错误 symfony console doctrine:fixtures:load :

In QueryException.php line 38:
                                                               
[Syntax Error] line 0, col 13: Error: Expected Literal, got '*'  
                                                               

In QueryException.php line 27:
                                        
SELECT count(*) FROM App\Entity\Courrier  
                                       

我查询中的 * 有什么问题?

Doctrine 希望您使用实体的字段之一。在 SQL 中,您不需要使用 count(*) 来获取行数 count(id) 也可以,只要该列不可为空即可。

所以将您的查询更改为 SELECT count(c.id) FROM App\Entity\Courrier as c 应该可以解决这个问题。