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个不同点引起的:
- class 本身被错误声明(命名空间或 classname)
- 调用没有使用正确的use语句
- 文件夹架构与声明的命名空间不匹配
正如您指出的那样,1 和 2 似乎不适用于您的情况。你能检查 3 吗?
好的,所以我似乎无法独自解决这个问题...
我正在使用 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个不同点引起的:
- class 本身被错误声明(命名空间或 classname)
- 调用没有使用正确的use语句
- 文件夹架构与声明的命名空间不匹配
正如您指出的那样,1 和 2 似乎不适用于您的情况。你能检查 3 吗?