symfony doctrine:查找其中一对多关联之一就像值的对象

时间:2016-09-12 19:17:32

标签: sql symfony doctrine

我有一个名为"客户"的实体。在这个实体中,有一个OneToMany与另一个实体的关联" customer-status"。 我想得到所有客户对象,其中一个客户状态字段就像xyz。

如果我像这样制作一个QB,这不是问题:

$qb->andWhere($qb->expr()->like('s.comment', ':comment'));
$qb->setParameter('comment', "Created at %");

唯一的问题是,我为所有客户提供了查询等客户状态。但只有这些状态。如果同样的查询适用,我想要所有状态。

我已经搜索了这个,但没有发现这样的事情。 有人有想法吗?

1 个答案:

答案 0 :(得分:0)

经过几杯啤酒,我找到了anser。对于预期结果,我不应该在select-operation中定义customer-status实体。只需选择父实体即可。 所以这个:

$qb
    ->select(['c'])
    ->leftJoin('customer.statuses', 's')
    ->andWhere($qb->expr()->like('s.comment', ':comment'))
    ->setParameter('comment', "Created at %");

是正确的方式,而不是

$qb
    ->select(['c', 's'])
    ->leftJoin('customer.statuses', 's')
    ->andWhere($qb->expr()->like('s.comment', ':comment'))
    ->setParameter('comment', "Created at %");