有两个实体。 票证和设备。
在设备orm 中有
<one-to-many target-entity="Ticket" mapped-by="Device" field="ticket"/>
<many-to-one field="category" target-entity="Category"/>
在故障单 中
<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 '.'
答案 0 :(得分: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'");