У одного филиала может быть много клиентов, клиент может быть связан со многими филиалами. Так что это отношение многие ко многим.
Ветвь:
<many-to-many target-entity="Customer" inversed-by="branches" field="customers"/>
Клиент:
<many-to-many field="branches" target-entity="Branch" mapped-by="customers"/>
Теперь я хочу выполнить следующий запрос: выбрать всех клиентов, где ветвь клиента соответствует данному объекту ветви.
Вот что я пробовал:
$branch = $em->getRepository('MyBundle:Branch')
->findOneById($bid);
$qb->select(array('c'))
->from('MyBundle:Customer', 'c')
->where($qb->expr()->in('c.branches', $branch))
->andWhere('c.delted = 0')
->getQuery();
Итак, моя идея состояла в том, чтобы использовать оператор IN. Но это не работает.
Ошибка:
Неустранимая ошибка: объект класса DateTime не может быть преобразован в строку ..Query\Expr\Func.php в строке 48.
Любые идеи, как сделать это правильно?