少なくとも 1 行は必要でしたが、クエリの結果は見つかりませんでした。質問する

少なくとも 1 行は必要でしたが、クエリの結果は見つかりませんでした。質問する

次のコードがあります:

/**
     * 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()のは、 メソッドを使用しているためです。 結果が 1 つも見つからない場合は例外が生成されます。getOneOrNullResult()クエリから結果がない場合は、代わりに を使用して NULL を取得できます。

クエリ#getSingleResult(): 単一のオブジェクトを取得します。結果に複数のオブジェクトが含まれる場合、NonUniqueResultException がスローされます。結果にオブジェクトが含まれない場合は、NoResultException がスローされます。純粋/混合の区別は適用されません。

おすすめ記事