2017-05-31 14 views
0

我工作的symfony項目,我有一個實體(主叫這裏ENT)與幾個屬性其中之一是一個多對一的關係:getter和多對一的關係不工作

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

現在我的控制器我有一個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); 
} 

我消氣的作品,只是太好了,我沒有得到所有多對一關係

我想這樣的事情屬性:

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); 
} 

但它沒有顯示'smthg'的數據庫中的內容。 PS:在數據庫中我有正確的信息。他們在那裏,我無法得到他們。

感謝您的幫助

+0

是什麼意思不工作? $ ent不存在,il會是$ ents –

+0

這不是,只是在這裏重寫很糟糕,但在我的代碼 –

+1

沒有這個錯誤好吧,但指定它是什麼意思不起作用,返回錯誤?錯誤的結果? –

回答

1

試試這個:

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); 
}