I'm trying to personalize a symfony 2.4
repository query to retrieve only some fields. Everything is ok with flat fields but when retrieving Entity fields, I only get the id (by default) but not the whole entity data. My query:
$select = $this->createQueryBuilder('ca')
->select('ca.id, ca.name')
->leftJoin('ca.users', 'user')
->addSelect('(user) as users');
$select->setMaxResults($count);
return $select->getQuery()->getResult();
The result is: [{id: 1, name: "Some name", users: 1}, ...]
How can I change this query for users to contain the whole user data, like id, name, address, etc.?
This works for me:
$select = $this->createQueryBuilder('ca')
->select('partial ca.{id, name}, users')
->leftJoin('ca.users', 'users');
$select->setMaxResults($count);
return $select->getQuery()->getArrayResult();
change this:
->select('ca.id, ca.name')
to this:
->select('ca')
You should try this way. You can use Partial.
$select = $this->createQueryBuilder('ca')
->select('partial ca.{id, name}')
->leftJoin('ca.users', 'users')
->addSelect('users');
A detailed description of this issue is available here. Doctrine2: Cannot select entity through identification variables without choosing at least one root entity alias
i hope this will useful for you.
$qb = $this->em->createQueryBuilder();
$qb->select('o.id as order_id,o.createdBy as created_by,o.user as user_id');
// for getting selective fields
//$qb->select('o');
//for getting all fields in certain table
$qb->from('Entity\Orders', 'o');
$qb->setMaxResults(1);
// for getting single record only.
return $qb->getQuery()->getOneOrNullResult();
// for getting single record or null record.
//return $qb->getQuery()->getResult();
// for getting multiple records.
feel free to ask any query regarding it.