Php 条令QueryBuilder:未捕获的异常
当我执行$qb->getQuery->getResult时, 我得到这个错误: 致命错误:未捕获异常“条令\ORM\Query\QueryException”,在/var/www/darkprog/application/libraries/Doctrine/ORM/Query/QueryException.php:39Stack trace: 0/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php429:Doctrine\ORM\Query\QueryException::dqlError'SELECT countu….' 1/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php854:Doctrine\ORM\Query\Parser->语义错误'Class'User'is…',数组 2/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php1529:Doctrine\ORM\Query\Parser->AbstractSchemaName 3/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php1426:Doctrine\ORM\Query\Parser->RangeVariableDeclaration 4/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php1168:Doctrine\ORM\Query\Parser->IdentificationVariableDeclaration 5/var/www/darkfrog/application/libraries/Doctrine/ORM/Query/Parser.php757:Doctrine\ORM\Query\Pars位于第49行的/var/www/darkfrog/application/libraries/Doctrine/ORM/Query/QueryException.php中Php 条令QueryBuilder:未捕获的异常,php,codeigniter,doctrine,Php,Codeigniter,Doctrine,当我执行$qb->getQuery->getResult时, 我得到这个错误: 致命错误:未捕获异常“条令\ORM\Query\QueryException”,在/var/www/darkprog/application/libraries/Doctrine/ORM/Query/QueryException.php:39Stack trace: 0/var/www/darkprog/application/libraries/Doctrine/ORM/Query/Parser.php429:Do
下面的代码非常有用,只需在from子句中添加Entities\即可
$qb->$this->doctrine->em->createQueryBuilder()
->select($qb->expr()->count('u.name'))
->from('User','u')
->where('u.name = :name')
->setParameter('name', $user->getUsername());
您可以使用User::class来定义实体名称
$qb = $this->doctrine->em->createQueryBuilder()
->select($this->doctrine->em->createQueryBuilder()->expr()->count('u.username'))
->from('Entities\User','u')
->where('u.username = :username')
->setParameter('username', $user->getUsername());
var_dump($qb->getQuery()->getResult());
谢谢你的帮助,但是我的代码也有同样的错误。如果你用$qb->getDql而不是getQuery来调试怎么办?我有下一个查询:从用户u中选择COUNTu.name,其中u.name=:name查询看起来不错,我想可能是其他原因。此输出是否为真var_dumpis_string$user->getUsername?$user->getUsername是字符串。我已经使用反向工程从现有数据库生成了映射和实体。生成的文件可能是错误的。
$qb = $this->doctrine->em->createQueryBuilder()
->select($this->doctrine->em->createQueryBuilder()->expr()->count('u.username'))
->from('Entities\User','u')
->where('u.username = :username')
->setParameter('username', $user->getUsername());
var_dump($qb->getQuery()->getResult());
$qb = $this->doctrine->em->createQueryBuilder()
->from(User::class,'u')
->select('count(u.name)')
->where('u.name = :name')
->setParameter('name', $user->getUsername());