有两个实体。票证和设备。
在设备或有
<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 '.'
->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'");