Подтвердить что ты не робот

Свойство Doctrine ReflectionException не существует

Я пытаюсь добавить 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 в качестве свойств в классе сущности. Итак, что вызывает исключение Reflection?

4b9b3361

Ответ 1

Так как я переименовал автогенерированное свойство с resellerID в reseller (после попытки его использования), мне нужно очистить кэш доктрины.

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 с Doctrine:

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