Doctrine2 + Symfony2: Como trazer mais de uma entidade no queryBuilder
Olá.
Estou com a seguinte dúvida.
Estou fazendo um select em várias tabelas diferentes, quero trazer algumas delas. Mas de todo jeito que eu tento, ou retorna apenas a principal ou da um erro.
Pode me ajudar?
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder()
->select( ['c as customer','b as bankAccount'] )
->from('MyBundle:BankAccount', 'b')
->join('b.customer', 'c')
->join('c.prepaidCards', 'p')
->leftJoin('c.addresses', 'a', Join::WITH, 'a.type = :address_type')
->leftJoin('a.city', 'ci')
->leftJoin('a.state', 's')
->leftJoin('c.company', 'co')
->where('b.accountType = :account_type')
->andWhere('b.isActive = 1')
->andWhere('p.status = :card_status')
->andWhere('p.shippingType ' . (is_null($shippingType) ? 'IS NULL' : '= :shipping_type'))
->andWhere('c.status IN (:customer_status)')
->setParameter('account_type', BankAccount::ACCOUNT_TYPE_CARD)
->setParameter('card_status', PrepaidCard::CARD_STATUS_ASSIGNED)
->setParameter('address_type', Address::TYPE_SHIPPING);
if (!is_null($shippingType)) {
$qb->setParameter('shipping_type', $shippingType);
}
$result = $qb->setParameter('customer_status', [Customer::STATUS_ACCEPTED, Customer::STATUS_ACTIVATED])
->getQuery()->getResult();
Já tentei o trecho:
->select( ['c as customer','b as bankAccount'] )
Como:
->select( 'c as customer, b as bankAccount' )
->select( ['c','b'] )
->select( 'c','b' )
E alguns outros que não me recordo no momento.
Preciso trazer 'c', 'b', 'p', 'a', 'ci', 's'
Discussão (0)
Carregando comentários...