0

有两个实体。设备

设备形式中有

<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 '.'
4

1 回答 1

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'");
于 2012-10-14T10:50:09.247 回答