Doctrine findBy* methods and fetch array
25,497
Solution 1
Try use toArray
Doctrine::getTable('Table')->findOneById(x)->toArray();
Solution 2
You can specify the hydration mode when using magic finders, like so:
Doctrine_Core::getTable('Table')->findOneById($x, Doctrine_Core::HYDRATE_ARRAY);
Solution 3
Haim Evgi and DuoSRX's answers are correct, but there's a slightly different version for both that I prefer when using Symfony:
Let's say your model name is Person, you would use:
PersonTable::getInstance()->findOneById(x)->toArray();
or
PersonTable::getInstance()->findOneById($x, Doctrine_Core::HYDRATE_ARRAY);
Solution 4
$adCampaign = $em->createQuery('select c from \Model\Campaign c where c.client = ?1')
->setParameter(1, $clientId)
->getArrayResult();
where em is the entityManager - you get the result as array with getArrayResult
Author by
Admin
Updated on February 22, 2020Comments
-
Admin about 4 years
What is the cleanest way of using the Doctrine findBy methods but getting an array returned and not objects.
Doctrine::getTable('Table')->findOneById(x);
That works but returns a doctrine object.
I'd still like to be able to use the find methods but I know I can't add
->fetchArray()
on the end.
Anyone else had this problem?