我使用symfony中的个人请求是:
public function findByReferenceUser($Reference, $User)
{
$qb = $this->createQueryBuilder('a')
->select('a')
->join('a.Reference', 'r')
->where('r.id = :refId')
->setParameter("refId", $Reference->getId())
->join('a.User', 'u')
->andWhere('u.id = :userId')
->setParameter("userId", $User->getId());
return $qb->getQuery()->getOneOrNullResult();
}
但是它不能正常工作。我得到3个结果类型是NULL,NULL,布尔值。我用这个来检查:
$list_article = $RArticle->findByReferenceUser($reference, $panier->getUser());
foreach ($list_article as $key => $article)
echo gettype($article);
我的数据库工作,并有正确的信息。最后,这行得通:
$list_article = $RArticle->findAll();
foreach ($list_article as $key => $article)
echo gettype($article);
打印对象,对象。
所以有我的问题:为什么我得到NULL, NULL,布尔值在第一种情况下,我如何修复它?
谢谢你的帮助!:)
当使用getOneOrNullResult
时,Doctrine将在这里使用Retrieve a single object. If no object is found null will be returned.
。
如果你需要多个对象,你应该使用getResult
findAll()
返回对象数组,如array('key' => 'object')
,这就是为什么你得到正确的记录,getOneOrNullResult()
返回单个对象(不是数组,foreach
不会工作),如果你想检索多个记录,你需要使用getResult()