使用Doctrine findBy方法的最简洁方法是什么,但是返回一个数组而不是对象。
Doctrine::getTable('Table')->findOneById(x);
这有效但返回一个学说对象。
我仍然希望能够使用find方法,但我知道我无法添加
->fetchArray()
最后。
其他人有这个问题吗?
答案 0 :(得分:19)
使用魔术探测器时可以指定水合模式,如下所示:
Doctrine_Core::getTable('Table')->findOneById($x, Doctrine_Core::HYDRATE_ARRAY);
答案 1 :(得分:4)
尝试使用toArray
Doctrine::getTable('Table')->findOneById(x)->toArray();
答案 2 :(得分:3)
Haim Evgi和DuoSRX的答案都是正确的,但是在使用Symfony时,我更喜欢两种版本:
假设你的模型名称是Person,你可以使用:
PersonTable::getInstance()->findOneById(x)->toArray();
或
PersonTable::getInstance()->findOneById($x, Doctrine_Core::HYDRATE_ARRAY);
答案 3 :(得分:1)
$adCampaign = $em->createQuery('select c from \Model\Campaign c where c.client = ?1')
->setParameter(1, $clientId)
->getArrayResult();
其中em是entityManager - 您使用getArrayResult
将结果作为数组获得