Не найдено ни одного результата для запроса, хотя ожидалась хотя бы одна строка
У меня есть следующий код:
/**
* 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
Ответы
Ответ 1
Вы получаете эту ошибку, потому что используете метод getSingleResult()
. он генерирует исключение, если он не может найти ни одного результата. вы можете использовать getOneOrNullResult()
вместо этого, чтобы получить NULL, если от запроса нет никакого результата.
ЗапроС# getSingleResult(): извлекает один объект. Если результат содержит более одного объекта, генерируется исключение NonUniqueResultException. Если результат не содержит объектов, генерируется исключение NoResultException. Чистое/смешанное различие не применяется.