错误:在非对象上调用成员函数getId()

时间:2016-05-20 19:43:31

标签: php symfony doctrine entity dql

我正在尝试从实体对象中获取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());的错误。

我正在获取整个Object,我只想要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>
} }

2 个答案:

答案 0 :(得分:3)

findBy...始终返回找到的实体数组(即使只找到一个符号)。使用findOneBy...始终只获取返回的第一个实体。

答案 1 :(得分:0)

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

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