如何在symfony2中使用doctrine findOneBy方法返回数组而不是对象?

时间:2014-05-15 14:43:29

标签: php arrays symfony doctrine

我有一种情况,我想从symfony2中的doctrine中使用findOneBy($ id)方法查询数据库。

$namePosting = $this->getDoctrine()->getRepository('MyBundle:Users')->findOneById($userPosting);

结果是具有受保护属性的对象。我想直接将它返回一个数组。如何才能做到这一点 ?

1 个答案:

答案 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;
        }   
    }