0
有什麼辦法可以做到這一點。嘗試不同的事情讓我越來越困惑。主義在不相關的實體上留下來加入
我有一個實體會議,可以有一個地方。 地方與城市有多對一的關係。
在我的查詢中,我試圖檢索城市信息,但似乎無法在相同的地方找到結果。 這是一個用來查詢:
$qbt = $this->_em->createQueryBuilder();
$qbt
->select('conference', 'diffusion', 'speaker', 'placediff', 'confcity')
->from('AppBundle:Conference', 'conference')
->leftJoin('conference.diffusion', 'diffusion')
->leftJoin('conference.speaker','speaker')
->leftJoin('conference.place','placediff')
->leftJoin('AppBundle:City', 'confcity', 'WITH', 'confcity.id = placediff.city');
return $qbt
->getQuery()
->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true)
->useQueryCache(true)
->useResultCache(true, 3600)
->getArrayResult();
這有什麼回報,目前只有一個會議。 雖然很想擁有第二個數組。
如何做到這一點任何想法?非常感謝〜
(UPDATE)在此期間我切換到原始SQL查詢,但真正在尋找一種方式來做到這一點使用DQL
public function rawConf()
{
$conn = $this->getEntityManager()->getConnection();
$sql = 'SELECT
c0_.id AS id,
c0_.startAt AS startat,
c0_.comment AS comment,
d1_.id AS diffusion_id,
d1_.hour AS diffusion_hour,
s2_.id AS speaker_id,
c0_.place_id AS place_id,
c0_.sponsor_id AS sponsor_id,
c0_.tour_id AS tour_id_8,
d1_.movie_id AS diffusion_movie_id,
s2_.contact_id AS speaker_contact_id,
c6_.name AS ville_name,
c6_.postal AS ville_post,
c6_.department as ville_depart
FROM
conference c0_
LEFT JOIN conference_diffusion c3_ ON c0_.id = c3_.conference_id
LEFT JOIN diffusion d1_ ON d1_.id = c3_.diffusion_id
LEFT JOIN conference_speaker c4_ ON c0_.id = c4_.conference_id
LEFT JOIN speaker s2_ ON s2_.id = c4_.speaker_id
LEFT JOIN place p5_ ON c0_.place_id = p5_.id
LEFT JOIN city c6_ ON (c6_.id = p5_.city_id)';
$stmt = $conn->prepare($sql);
$stmt->execute();
return $stmt->fetchAll();
}
Update =>顯然可以返回結果爲> getResult(\ Doctrine \ ORM \ Query :: HYDRATE_SCALAR)併合並所有屬性。任何我應該知道這樣做? –
嗯不行,SCALAR HYDRATE重複列 –
通過編輯不發表評論,在原文中發佈更新。此外,您的圖片太小,無法理解寫在那裏的內容。您可以在此張貼裁剪後的圖像或張貼預覽圖像,鏈接到全尺寸圖像。但是你也可以在帖子正文中發佈這個輸出。 –