找不到查询结果,但预计至少有一行 [英] No result was found for query although at least one row was expected

查看:197
本文介绍了找不到查询结果,但预计至少有一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码:

/**
     * 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致命错误:未捕获异常'Doctrine\ORM\NoResultException'与消息'没有找到结果查询虽然至少有一行预期' /var/www/Shopious/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:649

推荐答案

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

You are getting this error because you are using the getSingleResult() method. it generates an Exception if it can't find even a single result. you can use the getOneOrNullResult() instead to get a NULL if there isn't any result from the query.

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

Query#getSingleResult(): Retrieves a single object. If the result contains more than one object, an NonUniqueResultException is thrown. If the result contains no objects, an NoResultException is thrown. The pure/mixed distinction does not apply.

这篇关于找不到查询结果,但预计至少有一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆