教义反射异常属性不存在

2022-08-30 16:55:17

我试图在现有数据库之上添加教义。我让教义生成带注释的实体,并从那里进行调整。当我尝试加载下面的实体时,我收到错误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;

    /* ... */
}

和 表都有列。我的理解是,对于联接 ID 列,不要将 ID 列添加为实体类中的属性。那么是什么导致了反射异常呢?userresellerresellerID


答案 1

由于我已将自动生成的属性从 重命名为(在尝试使用它之后),因此事实证明我需要清除 Doctrine 缓存。resellerIDreseller

php vendor/bin/doctrine.php orm:clear-cache:result
php vendor/bin/doctrine.php orm:clear-cache:query
php vendor/bin/doctrine.php orm:clear-cache:metadata

或者,如果您将Symfony与Therins结合使用:

php bin/console doctrine:cache:clear-result
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-metadata

答案 2

对我来说,清除PHP APC缓存是解决方案

<?php
apc_clear_cache();

推荐