2014-10-03 3 views
10

Próbuję dodać Doctrine do istniejącej bazy danych. Pozwoliłem Doctrine generować anotowane obiekty i skorygowane z tego miejsca. Kiedy próbuję załadować podmiot poniżej pojawia się błąd PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Property Users\\User::$resellerID does not exist'Właściwość Doctrine ReflectionException nie istnieje

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; 

    /* ... */ 
} 

Zarówno user i reseller tabele mają resellerID kolumn. Rozumiem, że przy dołączaniu kolumn ID nie dodaje się kolumn ID jako właściwości w klasie encji. Co powoduje wyjątek ReflectionException?

Odpowiedz

30

Od czasu zmiany nazwy wygenerowanej automatycznie z resellerID na reseller (po próbie użycia) okazało się, że muszę wyczyścić pamięć podręczną Doctrine.

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 

Lub, jeśli używasz Symfony z nauką

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

wyczyszczenie pamięci podręcznej jest 1, co robię za każdym razem mam błąd w Symfony ... – user276648

2

Dla mnie clearing the PHP APC cache został rozwiązanie

<?php 
apc_clear_cache(); 
+0

To było to, czego potrzebowałem na końcu - wyczyszczenie pamięci podręcznej doktryny okazało się tymczasową miarą i dopiero gdy ponownie uruchomiłem memcached, pozbyłem się błędu na dobre . – beterthanlife