Error: Call to a member function getId() on a non-object

Error: Call to a member function getId() on a non-object

我正在尝试从实体对象中获取 ID。

代码

public function findByName($name)
{
    $qb = $this->createQueryBuilder('u');
    $qb->where('u.name  = :name');
    $qp->setParameter('name', $name);
    return $qb->getQuery()->getResult();
}

我是这样调用函数的

$Obj = $this->getDoctrine()->getRepository('UserBundle:User');
$idName=$Obj->findByName('Sarah');
var_dump($idName->getId());

我收到这部分的错误 var_dump($idName->getId());

我得到了整个对象,我只想要 ID。没用。

$idName 转储到此:

@array(1) {<br>
[0]=> object(UserBundle\Entity\User)#2339 (2) { <br>
["id":"UserBundle\Entity\User":private]=> int(2) ["name":"UserBundle\Entity\User":private]=> string(8) "Sarah" <br>
} }

你的问题是 $idName 是一个 @array(1),而不是一个对象。尝试使用它来实现它

var_dump($idName[0]->getId());

findBy... 总是 returns 一组找到的实体(即使只找到一个符合条件的实体)。使用 findOneBy... 始终只返回第一个实体。