Php 错误:对非对象调用成员函数getId()
我正在尝试从实体对象获取id 代码Php 错误:对非对象调用成员函数getId(),php,symfony,doctrine,entity,dql,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-&
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>
} }
@array(1){
[0]=>对象(UserBundle\Entity\User)#2339(2){
[“id”:“UserBundle\Entity\User”:private]=>int(2)[“name”:“UserBundle\Entity\User”:private]=>string(8)“Sarah”
} }
您的问题是,$idName
是一个@array(1)
,而不是一个对象。试着用这个来达到目的
var_dump($idName[0]->getId());
您的问题是,$idName
是一个@array(1)
,而不是一个对象。试着用这个来达到目的
var_dump($idName[0]->getId());
findBy…
始终返回已找到实体的数组(即使仅找到一个条件实体)。使用findOneBy…
始终仅获取返回的第一个实体。findBy…
始终返回已找到实体的数组(即使仅找到一个条件实体)。使用findOneBy…
始终只获取返回的第一个实体。您是否尝试过var\u dump($idName)代码>以确保它是一个对象?是的,我得到的是数组(1){[0]=>对象(UserBundle\Entity\User){2339(2){[“id”:“UserBundle\Entity\User”:private]=>int(2)[“name”:“UserBundle\Entity\User”:private]=>string(5)“Sarah”}
你试过var\u dump($idName)代码>以确保它是一个对象?是的,我得到的是array(1){[0]=>object(UserBundle\Entity\User){[id:“UserBundle\Entity\User”:private]=>int(2)[“name:“UserBundle\Entity\User”:private]=>string(5)“Sarah”}
没有数组,有什么东西可以得到它吗?@JooniJoon我不知道。我没有写Symfony。但是如果它返回一个数组,那么它可能会返回多个object。有没有数组就可以得到它?@JooniJoon我不知道。我没有写Symfony。但是如果它返回一个数组,那么它可能返回多个对象