2014-07-03 67 views
0

我正在看三種不同的模型/實體。一個稱爲Model:Idea,一個稱爲Model:IdeaDetail,另一個稱爲Model:IdeaDetailValue選擇對象與學說

IdeaDetail有幾個不同的欄目,包括Idea(這是在數據庫idea_id,但在我的模型類$理念對象)和IdeaDetailValue(在數據庫idea_detail_value_id,但$ ideaDetailValue作爲模型的對象)。

所以基本上,我想要做的是通過查詢IdeaDetail來選擇Idea對象的列表。

$queryBuilder 
->select('id.idea') 
->from('Model:IdeaDetail', 'id') 
->where('IDENTITY(id.ideaDetailValue) IN (:ideaDetailValueIds)') 
->setParameter('ideaDetailValueIds', $ideaDetailValueIds) 
->getQuery() 
->getResult(); 

這雖然失敗,此錯誤:

[Semantical Error] line 0, col 10 near 'task FROM Model:IdeaDetail': Error: Invalid PathExpression. Must be a StateFieldPathExpression. 

有誰知道正確的方式做到這一點查詢?

感謝

回答

1

這是錯誤的選擇id.idea(根據錯誤,事實上,你可能選擇id.task),也不能在這種情況下使用IDENTITY()

你應該加入你的表來達到預期的效果。像這樣的東西應該工作:

$queryBuilder 
    ->select('idea') 
    ->from('Model:IdeaDetail', 'id') 
    ->leftJoin('Model:IdeaDetailValue', 'idea') 
    ->where('idea.id IN (:ideaDetailValueIds)') 
    ->setParameter('ideaDetailValueIds', $ideaDetailValueIds) 
    ->getQuery() 
    ->getResult();