Symfony 调用非对象的成员函数 setFirstname()

Symfony Call to a member function setFirstname() on a non-object

我正在尝试使用服务在 table 中创建行。但它说 Call to a member function setFirstname() on a non-object,这是一行: $this->idm->setPersno($science->getPersno());

我在 google 上搜索了几个小时,但找不到该问题的解决方案。有人可以帮助我吗?

$scienceList = $this->em->getRepository('MyBundle:MyTable1')->findAll();
            foreach ($scienceList as $science) 
            {
                $idm = new Users();
                $this->idm = $this->em->getRepository('MyBundle:MyOtherTable')->find($science->getPersno());
                if($this->idm == null)
                {
                    $this->idm->setPersno($science->getPersno());
                    $this->idm->setFirstname($science->getFirstname());
                    $this->idm->setLastname($science->getLastname());
                    $this->em->persist($idm);

                }
            }
            $this->em->flush();
           $this->idm = $this->em->getRepository('MyBundle:MyOtherTable')->find($science->getPersno());
            if($this->idm == null)
            {
                $this->idm = new Users();
                $this->idm->setPersno($science->getPersno());
                $this->idm->setFirstname($science->getFirstname());
                $this->idm->setLastname($science->getLastname());
                $this->em->persist($this->idm);

            }