Doctrine ReflectionException属性不存在

时间:2014-10-03 21:31:28

标签: php doctrine-orm

我试图在现有数据库之上添加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;

    /* ... */
}

userreseller表都有resellerID列。我的理解是,对于加入ID列,您不能将ID列添加为实体类中的属性。那么导致ReflectionException的是什么?

5 个答案:

答案 0 :(得分:40)

由于我已将自动生成的属性从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

答案 1 :(得分:3)

对我来说clearing the PHP APC cache是解决方案

<?php
apc_clear_cache();

答案 2 :(得分:0)

通常在生产中,您需要这样的东西:

php bin/console doctrine:cache:clear-result --env=prod

php bin /控制台学说:cache:clear-query --env = prod php bin /控制台原则:cache:clear-metadata --env = prod

答案 3 :(得分:0)

无论如何,它对我有帮助

php artisan  doctrine:clear:metadata:cache

答案 4 :(得分:0)

当我试图清除学说缓存时,我的错误仍然发生。

对我有用的是通过删除 /storage/framework/cache/* 下的文件夹来手动清除缓存