我尝试在现有数据库上添加Doctrine。我让Doctrine生成带注解的实体并从那里进行调整。当我尝试加载下面的实体时,我收到错误PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Property Users\\User::$resellerID does not exist'
class User
{
/* ... */
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToOne(targetEntity="\Resellers\Reseller")
* @ORM\JoinTable(name="reseller",
* joinColumns={
* @ORM\JoinColumn(name="resellerID", referencedColumnName="resellerID")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="resellerID", referencedColumnName="resellerID")
* }
* )
*/
private $reseller;
/* ... */
}
user
和reseller
表都有resellerID
列,我的理解是,对于连接ID列,您不需要将ID列作为属性添加到实体类中,那么是什么导致了ReflectionException呢?
7条答案
按热度按时间mklgxw1f1#
因为我已经将自动生成的属性从
resellerID
重命名为reseller
(在尝试使用它之后),所以我需要清除Doctrine缓存。或者,如果您使用Symfony with Doctrine:
2w3kk1z52#
对我来说,clearing the PHP APC cache就是解决方案
wvyml7n53#
不管怎样,它帮了我
iecba09b4#
通常在生产中,您需要这样的内容:
kdfy810k5#
我的错误仍然发生在我试图清除原则缓存时。
对我有效的方法是通过删除
/storage/framework/cache/*
下的文件夹来手动清除该高速缓存cyvaqqii6#
在Symfony中,由于Docker容器权限,我不得不手动删除/var/cache/下的所有内容。
eivnm1vs7#
如果有人在使用Docker容器时阅读此信息:
1.在PHP/Symfony容器中使用终端。
1.输入旧答案中引用的条令缓存清除命令:
1.在Docker中重新启动PHP / Symfony容器。
重新启动作为最后一步最终清除了任何挥之不去的东西,至少在我的情况下是这样。希望这对其他使用Docker的人有帮助。