【问题标题】:Doctrine query delete教义查询删除
【发布时间】:2015-10-13 07:43:03
【问题描述】:

我在教义查询中遇到了一个我不理解的错误。 我尝试删除具有特定 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' /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 行

我不明白这个错误的含义。 感谢任何可以引导我走向正确方向的人。

【问题讨论】:

    标签: php doctrine-orm


    【解决方案1】:

    堆栈跟踪的这一点似乎表明类名存在某些问题。

    ...semanticalError('Class 'route' i...', Array) 
    

    您确定您指定的实体名称正确吗?您应该使用包含命名空间的完全限定类名。

    示例:DELETE MyProject\Model\Route r WHERE r.user_id = 4

    解决方案:

    I.以防万一检查:

    1. 确保类名正确。案例和命名空间+类名。
    2. 运行 composer dump-autoload 以确保您的类已正确加载。
    3. 确保您的实体存在且已正确映射。

    II.改用Doctrine的EntityManager remove方法。

    例子:

    $em = new EntityManager();
    $route= $em->find('route', 1);
    $em->remove($route);
    $em->flush();
    

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2014-02-27
      • 2018-07-11
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多