【问题标题】:No result was found for query although at least one row was expected尽管预计至少有一行,但未找到查询结果
【发布时间】:2015-05-27 11:15:46
【问题描述】:

我有以下代码:

/**
     * Search similar category given a string
     * 
     * @param $searchTerm search similar category
     */
    public function findOneSimilarCategory($searchTerm)
    {
        $query = $this->createQueryBuilder('secondLevelCategory')
                ->select('secondLevelCategory')
                ->where('secondLevelCategory.categoryTitle LIKE :searchTerm')
                ->setParameter('searchTerm', $searchTerm)
                ->getQuery();

        $query->useResultCache(true, self::CACHE_RESULT_LIFETIME, md5(__METHOD__ . serialize('category-search-' . $query->getParameters())));
        $query->useQueryCache(true);
        return $query->getSingleResult();
    }

但是这给了我一个错误:

"PHP message: PHP Fatal error: Uncaught exception 'Doctrine\ORM\NoResultException' with message 'No result was found for query although at least one row was expected.' in /var/www/Shopious/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:649

【问题讨论】:

  • 打印出完成的查询并在您的 phpmyadmin、sqlworkbench 或其他工具中尝试。

标签: php symfony doctrine-orm doctrine


【解决方案1】:

您收到此错误是因为您使用的是getSingleResult() 方法。如果它连一个结果都找不到,它会生成一个异常。如果查询没有任何结果,您可以使用 getOneOrNullResult() 来获取 NULL。

Query#getSingleResult():检索单个对象。如果结果包含多个对象,则抛出 NonUniqueResultException。如果结果不包含任何对象,则抛出 NoResultException。纯/混合的区别不适用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多