2014-01-19 11 views
10

Mit dem Code:Symfony2: Aufruf der undefinierten Methode Lehre ORM Querybuilder :: getResult()

$qb = $entityManager->createQueryBuilder(); 
$qb->select('cat')->from('BuyAndSellSiteBundle:Category ', 'cat'); 
$qb->getQuery(); 
$a =$qb->getResult(); 

ich eine Ausnahme erhalten:

FatalErrorException: Error: Call to undefined method Doctrine\ORM\QueryBuilder::getResult() in C:\xampp\htdocs\buySell\src\BuyAndSell\SiteBundle\Controller\DefaultController.php line 

Antwort

15

Das macht Sinn. Da QueryBuilder sich nicht ändert, müssen Sie aufgrund der getQuery() Aufruf speichern:

$queryBuilder = $entityManager->createQueryBuilder(); 
$queryBuilder->select('cat')->from('BuyAndSellSiteBundle:Category ', 'cat'); 

// get the Query from the QueryBuilder here ... 
$query = $qb->getQuery(); 

// ... then call getResult() on the Query (not on the QueryBuilder) 
$result = $query->getResult(); 
+0

richtige Antwort! der 'QueryBuilder' hat keine' getResult() 'Methode. Nur die 'Query'-Instanz, die durch Aufrufen der' getQuery() 'Methode für ein' QueryBuilder' Objekt erhalten werden kann, stellt diese Methode zur Verfügung. '$ qb' ist eine Instanz von ** Q ** sehr ** ** ** hier. Ich habe die Variablennamen Ihrer Antwort bearbeitet, um sie deutlicher zu machen :) – nifr

+0

Danke! Das war hilfreich – LanMan

+0

Dank @nifr für die aufwendige Bearbeitung;) –

3

Wechseln zu:

$a = $qb->getQuery()->getResult(); 

// or 

$q = $qb->getQuery(); 
$a = $q->getResult(); 
Verwandte Themen