既存のデータベースの上に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 列をエンティティ クラスのプロパティとして追加しません。では、ReflectionException の原因は何でしょうか?
ベストアンサー1
自動生成されたプロパティの名前を から に変更したためresellerID
(reseller
使用しようとした後)、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
または、Symfony を Doctrine と一緒に使用している場合:
php bin/console doctrine:cache:clear-result
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-metadata