我有一种情况,我想从symfony2中的doctrine中使用findOneBy($ id)方法查询数据库。
$namePosting = $this->getDoctrine()->getRepository('MyBundle:Users')->findOneById($userPosting);
结果是具有受保护属性的对象。我想直接将它返回一个数组。如何才能做到这一点 ?
答案 0 :(得分:10)
findOneBy(array())
将始终返回null或object。
但你可以改用findById($userPosting)
或findBy(array('id' => $userPosting))
,它会返回一个数组,例如:
$this->getDoctrine()->getRepository('MyBundle:Users')->findById($userPosting))
或者您可以在UserRepository
类中添加方法:
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query;
class UserRepository extends EntityRepository
{
public function getUser($userPosting)
{
$qb = $this->createQueryBuilder('u')
->select('u')
->where('u =:userPosting')->setParameter('userPosting', $userPosting)
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
return $qb;
}
}