2014-10-03 4 views
10

Sto tentando di aggiungere Doctrine su un database esistente. Lascia che Doctrine generi entità annotate e aggiustato da lì. Quando provo a caricare l'entità sotto ho l'errore PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Property Users\\User::$resellerID does not exist'La proprietà Doctrine ReflectionException non esiste

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; 

    /* ... */ 
} 

Sia i user e reseller tabelle hanno resellerID colonne. La mia comprensione è che per unire le colonne ID non si aggiungono le colonne ID come proprietà nella classe entità. Quindi, qual è la causa del ReflectionException?

risposta

30

Da quando ho rinominato la proprietà autogenerata da resellerID a reseller (dopo aver provato a utilizzarlo) risulta che avevo bisogno di svuotare la cache di 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 

Oppure, se si sta utilizzando Symfony con Doctrine:

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

Svuotare la cache è la prima cosa che faccio ogni volta che ho un errore in Symfony ... – user276648

2

Per me clearing the PHP APC cache era la soluzione

<?php 
apc_clear_cache(); 
+0

Questo era ciò di cui avevo bisogno alla fine: cancellare la cache della dottrina si rivelava una misura temporanea ed è stato solo quando ho riavviato memcached che mi sono liberato dell'errore per sempre . – beterthanlife