How to return object from a DQL query?
I have written a DQL query in Doctrine 2:
$qb->select('r.position')
->from('\Entities\Races', 'r')
->where($qb->expr()->eq('r.entrantId', ':entrant_id'))
->setParameter('entrant_id', $this->entrantId);
$query = $qb->getQuery();
$aRaces = $query->getResult();
Currently it returns the results of the query in an array like so:
Array
(
[0] => Array
(
[position] => 10
)
[1] => Array
(
[position] => 4
)
)
I want the result to return an arra开发者_如何学Goy of Races objects so that I can access the methods associated with the object (I'm pretty sure the previous version of Doctrine returned objects by default).
I tried:
$aRaces = $query->getResult(Query::HYDRATE_OBJECT);
But that didn't make a difference.
Appreciate the help
You are fetching only position column from DB. Try replacing select('r.position') with select(r). See DQL reference
If you need objects with only position attribute, refer to partial objects
The: $qb->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);
Return an array with object and you can catch them with: $match[0];
If you want to return a single result you must be use: $qb->getOneOrNullResult()
I could not solve my problem with your solution, here my part of code:
$qb = $this->_objectManager->createQuery('Select d from Hotbed\Entity\Department d where d.id <> :id and d.title = :title');
$qb->setParameters(array('id' => $context['id'], 'title' => $value));
$match = $qb->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);
$match returns this:
array(1) {
[0] => object(Hotbed\Entity\Department)#626 (4) {
['inputFilter':protected] => NULL
['id':protected] => int(25)
['title':protected] => string(4) '2222'
['state':protected] => int(0)
}
}
thx for any help
加载中,请稍侯......
精彩评论