php - 尽管至少需要一行,但未找到查询结果

标签 php symfony doctrine-orm doctrine

我有以下代码:

/**
     * 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 消息:PHP fatal error :未捕获的异常‘Doctrine\ORM\NoResultException’,消息为‘尽管至少有一行是预期的,但未找到查询结果。’在/var/www/Shopious/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:649

最佳答案

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

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

关于php - 尽管至少需要一行,但未找到查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227635/

相关文章:

phpspec - 方法返回对象而不是字符串

php - 在 HWIOAuthBundle 中调用 loadUserByOAuthUserResponse() 时

javascript - Twig json_encode 与实体对象和集合(Symfony3)

php - Doctrine 2 与关联的继承映射

symfony - 如何验证 Symfony 2 中至少一个元素(或 N 个元素)的选择?

php - 让这个类符合依赖倒置原则

php - mysql 中的排名查询无法正常工作

php - 如何将值数组从 android 发送到 php

php - Symfony2 : PHPUnit How to use 'OR' condition in an assertion?

mysql - 如何通过 vimeo api 从 Vimeo 帐户删除视频