2016-11-19 5 views
-1

Ich habe Probleme mit dieser Suchanfrage. Ich möchte nur die Autos mit dem atribute $ categoria erhalten, und ich dies tun:Probleme mit Doctrine und Wo

public function listcategoriaAction($categoria) 
    { 
     $posts = $this->get('doctrine')->getManager()->createQueryBuilder()->select('p')->from('CarsCarsBundle:Post', 'p')->where('p.categoria = :categoria')->setParameter('categoria', $categoria)->getQuery()->getResult(); 

     return $this->render('CarsCarsBundle:Cars:list.html.twig', array('posts' => $posts)); 
    } 

Aber was ich empfangen, ist ein leeres Array. Irgendwelche Tipps werden geschätzt

+0

Können Sie sagen, ob $ categoria Argument Categoria Objekt oder Fremdschlüsselwert ist (d. H. ID von categoria)? –

Antwort

-1

Zunächst einmal nehme ich an, dass dieser Code in der Steuerung ist. Ich empfehle Ihnen dringend, keine Anfragen an Ihren Controller zu stellen, stattdessen use repositories.

Ich denke, dieser Fehler ist passiert, weil Sie zuvor die Kategorie-ID nicht hydriert haben, die Sie durch den Parameter erhalten haben. Das würde den Trick machen:

$dm = $this->get('doctrine')->getManager(); 

//This gets the object from db 
$category = $dm->getRepository('CarsCarsBundle:Category')->findOneById($categoria); 

if ($category !== null) { 

    $posts = $dm->getRepository('CarsCarsBundle:Post')->findOneByCategory($category); 

} else { 

    //The id received is not on the db. 
}