Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 条令QueryBuilder:未捕获的异常_Php_Codeigniter_Doctrine - Fatal编程技术网

Php 条令QueryBuilder:未捕获的异常

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

当我执行$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中


下面的代码非常有用,只需在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());