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