2012-10-14 47 views
0

有兩個實體。 票務設備使用doctrine2加入symfony2中的兩個實體

設備ORM

<one-to-many target-entity="Ticket" mapped-by="Device" field="ticket"/> 
<many-to-one field="category" target-entity="Category"/> 

票ORM

<many-to-one field="device" target-entity="Device"/> 

我想實現一個過濾器,用戶可以通過設備的類別篩選門票。我怎樣才能做到這一點?我試着用

$qb->select(array('t', 'd')) 
     ->from('MyBundle:Ticket', 't') 
     ->innerJoin('t.device', 'd') 
     ->where("t.category.name = 'Cashbox'");; 

但是,這給了我一個錯誤

[Syntax Error] line 0, col 88: Error: Expected =, <, <=, <>, >, >=, !=, got '.' 

回答

1
->where("t.category.name = 'Cashbox'");; 

不正確。你必須加入類別表:

$qb 
    ->select(array('t', 'd')) 
    ->from('MyBundle:Ticket', 't') 
    ->innerJoin('t.device', 'd') 
    ->innerJoin('d.category', 'c') 
    ->where("c.name = 'Cashbox'"); 
+0

這也不管用,[語義錯誤] 0行,列94附近的「c其中c.name」:錯誤:頭等艙機票有沒有協會命名 –

+0

類哦,它是具有類別關係的設備。更新 – AdrienBrault

+0

真棒,非常感謝! –

相關問題