尽管预期至少有一行,但未找到查询结果
我有以下代码:
/**
* 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();
}
但是这给了我一个错误:
however this gives me an error:
"PHP 消息:PHP 致命错误:未捕获的异常 'DoctrineORMNoResultException' 带有消息 'No result was found for query 尽管预期至少有一行.'在/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.
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.
相关文章