2014-10-03 5 views
10

Я пытаюсь добавить Doctrine поверх существующей базы данных. Я позволяю Doctrine генерировать аннотированные объекты и корректироваться оттуда. Когда я пытаюсь загрузить объект ниже, я получаю ошибку PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Property Users\\User::$resellerID does not exist'Свойство Doctrine ReflectionException не существует

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?

ответ

30

Поскольку я переименовал автогенерированное свойство с 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 с доктриной:

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

Очистка кэш является первым, что я делаю каждый раз, когда у меня есть ошибка в Symfony ... – user276648

2

Для меня clearing the PHP APC cache было решение

<?php 
apc_clear_cache(); 
+0

Это было то, что мне было нужно в конце - очистка кэша доктрины оказалась временной мерой, и только когда я перезапустил memcached, я избавился от ошибки навсегда , – beterthanlife

Смежные вопросы