2015-03-24 17 views
12

Ho il seguente codice:Nessun risultato è stato trovato per la query, anche se almeno una riga si aspettava

/** 
    * 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(); 
    } 

tuttavia questo mi dà un errore:

"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

+0

Stampa la query eseguita e provalo nel tuo phpmyadmin, sqlworkbench o altro. – Chilion

risposta

41

Hai trovato questo errore perché si sta utilizzando il metodo getSingleResult(), ma genera un'eccezione se non riesce a trovare nemmeno un singolo risultato, è possibile utilizzare lo getOneOrNullResult() invece di ottenere un valore NULL se non ci sono risultati dalla query

Query # getSingleResult(): recupera un singolo oggetto. Se il risultato contiene più di un oggetto, viene lanciata una NonUniqueResultException. Se il risultato non contiene oggetti, viene generata una NoResultException. La distinzione puro/misto non si applica.

Problemi correlati