Class 不存在学说

Class does not exist Doctrine

好的,所以我似乎无法独自解决这个问题...

我正在使用 symfony 和 doctrine 构建应用程序。

出于某种原因,我需要在控制器中调用我的数据库,但出现错误。

每次我尝试调用这个函数时:

private function getAgency(string $userid)
    {
        $idAgency=$this->getDoctrine()->getRepository(User::class)->find($userid)->getidAgency();
        $Agency=$this->getDoctrine()->getRepository(Agency::class)->find($idAgency);
        return $Agency;
    
    }

我遇到了这个错误:Class App\Entity\Agency does not exist 我不明白,因为代理实体确实存在,Agency.php 文件:

namespace App\Entity;


use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;


/**
 * @ORM\Entity(repositoryClass="App\Repository\AgencyRepository")
 * @UniqueEntity("nameAgency")
 */
class Agency
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="integer")
     * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="idAgency")
     */
    private $user_id;

    /**
     * @ORM\Column(type="string", length=180, unique=true)
     */
    private $nameAgency;

    /**
     * @ORM\Column(type="integer")
     */
    private $idDefaultContact;

    /**
     * @ORM\Column(type="string", nullable=true)
     * @Assert\NotBlank
     */
    private $nameContact;
    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $idContact;

    /**
     * @ORM\Column(type="string", nullable=true)
     */
    private $NameSpecialContact;
    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $commentary;

    // Contructors

    public function getnameAgency(): ?string
    {
        return $this->nameAgency;
    }

    public function setnameagency(string $nameAgency)
    {
        $this->nameAgency = $nameAgency;
        return $this;
    }

    public function getnameContact(): ?string
    {
        return $this->nameContact;
    }
    public function setnameContact(string $nameContact)
    {
        $this->nameContact = $nameContact;
        return $this;
    }

    public function getcommentary(): ?string
    {
        return $this->commentary;
    }

    public function setcommentary(string $commentary)
    {
        $this->commentary = $commentary;
        return $this;
    }

}

据我所知,我以与代理实体相同的方式调用用户实体,然后删除所有代理调用;使用用户实体的部分工作得很好...

我在这里缺少什么?

编辑:如前所述;我使用了 use App\Entity\User; use App\Entity\Agency;

但是没用

可能缺少 use 关键字


namespace App\Bar;

use App\Entity\Agency;


class Foo
{

private function getAgency(string $userid)
    {
        $idAgency=$this->getDoctrine()->getRepository(User::class)->find($userid)->getidAgency();
        $Agency=$this->getDoctrine()->getRepository(Agency::class)->find($idAgency);
        return $Agency;
    
    }
}

Class不存在可能是由3个不同点引起的:

  1. class 本身被错误声明(命名空间或 classname)
  2. 调用没有使用正确的use语句
  3. 文件夹架构与声明的命名空间不匹配

正如您指出的那样,1 和 2 似乎不适用于您的情况。你能检查 3 吗?