尽管至少需要一行,但未找到查询结果
No result was found for query although at least one row was expected
我有以下代码:
/**
* 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
您收到此错误是因为您正在使用 getSingleResult()
方法。如果它甚至找不到一个结果,它就会生成一个异常。如果查询没有任何结果,您可以使用 getOneOrNullResult()
来获取 NULL。
Query#getSingleResult():检索单个对象。如果结果包含多个对象,则抛出 NonUniqueResultException。如果结果不包含对象,则抛出 NoResultException。 pure/mixed 区别不适用。
我有以下代码:
/**
* 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
您收到此错误是因为您正在使用 getSingleResult()
方法。如果它甚至找不到一个结果,它就会生成一个异常。如果查询没有任何结果,您可以使用 getOneOrNullResult()
来获取 NULL。
Query#getSingleResult():检索单个对象。如果结果包含多个对象,则抛出 NonUniqueResultException。如果结果不包含对象,则抛出 NoResultException。 pure/mixed 区别不适用。