2017-05-31 5 views
0

Ich bin auf einem symfony Projekt arbeiten und ich habe eine Person mit mehreren Attributen einer von ihnen (hier ent Aufruf) eine ManyToOne Beziehung zu: inGetter und ManyToOne Beziehung funktioniert nicht

/** 
* @ORM\ManyToOne(targetEntity="RB\ABundle\Entity\Somethingelse", inversedBy="ent") 
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE") 
*/ 
private $smthg 

Jetzt ist mein Controller ich habe einen Getter:

public function getAction($smthg) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $ents = $em->getRepository('ABundle:Ent') 
     ->createQueryBuilder('p') 
     ->where('p.smthg = :smthg') 
     ->setParameter('smthg', $smthg) 
     ->getQuery() 
     ->getArrayResult(); 
    return new JsonResponse($ents); 
} 

Mein Getter funktioniert gut, außer dass ich nicht bekommen, die alle Attribute mit ManyToOne Beziehung

ich Dinge wie das versuchte:

public function getAction($smthg) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $ents = $em->getRepository('ABundle:Ent') 
     ->createQueryBuilder('p') 
     ->select('p') 
     ->join('p.smthg','pr') 
     ->where('p.smthg = :smthg') 
     ->setParameter('smthg', $smthg) 
     ->getQuery() 
     ->getArrayResult(); 
    return new JsonResponse($ents); 
} 

Aber es zeigt nicht an, was in der Datenbank für das 'sthg' ist.

PS: in der Datenbank habe ich die richtigen Informationen. Sie sind da, ich kann sie einfach nicht bekommen.

Danke für die Hilfe

+0

Was bedeutet es nicht funktioniert das? $ ent existiert nicht, il wäre $ ens –

+0

es ist nicht das, nur schlecht umschreiben hier, aber nicht dieser Fehler in meinem Code –

+1

ok, aber angeben, was es bedeutet, funktioniert nicht, gibt Fehler zurück? falsche Ergebnisse? –

Antwort

1

Versuchen Sie folgendes:

public function getAction($smthg) 
{ 
    $ents = $this->getDoctrine()->getRepository('ABundle:Ent') 
     ->createQueryBuilder('p') 
     ->select('p', 'pr') 
     ->join('p.smthg','pr') 
     ->where('p.smthg = :smthg') 
     ->setParameter('smthg', $smthg) 
     ->getQuery() 
     ->getArrayResult(); 
    return new JsonResponse($ents); 
} 
Verwandte Themen