如果我这样做:
->select('a')
->from('AppBundle:Accomodation', 'a')
->innerJoin('AppBundle:AccomodationRoom', 'ap', Join::WITH, $qb->expr()->eq('ap.accomodation', 'a.id'))
->getQuery()->getResult();
选择住宿中的所有字段。 但是,如果我添加这个' ap'选择,如下所示,它不会选择住宿字段:
->select('a', 'ap')
->from('AppBundle:Accomodation', 'a')
->innerJoin('AppBundle:AccomodationRoom', 'ap', Join::WITH, $qb->expr()->eq('ap.accomodation', 'a.id'))
->getQuery()->getResult();
实体之间的关系。这是住宿: / **
* @ORM\OneToMany(targetEntity="AccomodationRoom", mappedBy="accomodation")
*/
private $rooms;
这是AccomodationRoom:
/**
* @ORM\ManyToOne(targetEntity="Accomodation", inversedBy="rooms")
* @ORM\JoinColumn(name="accomodation_id", referencedColumnName="id")
*/
private $accomodation;
请知道吗?
答案 0 :(得分:2)
你必须select
住宿和住宿。
->select('a', 'ap')
->from('AppBundle:Accomodation', 'a')
->innerJoin('a.rooms', 'ap')
->getQuery()->getResult();