我有一个错误,我不理解一个学说查询。 我尝试删除具有特定ID的每个条目:
$qb = $this->doctrine->em->createQueryBuilder();
$query = $qb
->delete('route', 'r')
->where("r.user_id = 423")
->getQuery();
$query->execute();
当我执行这个时,我遇到了这个错误:
致命错误:未捕获的异常'Doctrine \ ORM \ Query \ QueryException' 消息'DELETE route r WHERE r.user_id = 423'in /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/QueryException.php:39 堆栈跟踪:#0 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(429): Doctrine \ ORM \ Query \ QueryException :: dqlError('DELETE route r ...')#1 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(854): Doctrine \ ORM \ Query \ Parser-> semanticalError('Class'route'i ...', 数组)#2 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(1132): Doctrine \ ORM \ Query \ Parser-> AbstractSchemaName()#3 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(788): Doctrine \ ORM \ Query \ Parser-> DeleteClause()#4 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(734): Doctrine \ ORM \ Query \ Parser-> DeleteStatement()#5 /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/Parser.php(229): Doctrine \ ORM \ Query \ Parser-> QueryLanguage()#6 / var / in /var/www/mywebsite/application/libraries/Doctrine/ORM/Query/QueryException.php 第49行
我不明白这个错误的含义。 感谢任何能引导我走向正确方向的人。
答案 0 :(得分:1)
堆栈跟踪的这一位似乎暗示了类名的内容。
...semanticalError('Class 'route' i...', Array)
您确定正确指定了实体名称吗?您应该使用包含命名空间的完全限定类名。
示例:DELETE MyProject\Model\Route r WHERE r.user_id = 4
<强>解决方案:强>
我。以防万一:
composer dump-autoload
以确保您的课程已正确加载。II。请改用Doctrine的EntityManager删除方法。
示例:
$em = new EntityManager();
$route= $em->find('route', 1);
$em->remove($route);
$em->flush();