我有一种情况,我想使用 symfony2 中的 Doctrine 中的 findOneBy($id) 方法查询数据库。
$namePosting = $this->getDoctrine()->getRepository('MyBundle:Users')->findOneById($userPosting);
结果它是一个具有 protected 属性的对象。我想直接返回一个数组。如何才能做到这一点 ?
最佳答案
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;
}
}