-1

我有扩展 FOSUser 的 AbstractUser 超类,然后我有使用与该类相关的字段扩展 AbstractUser 的实体。例如 Customer 与 City 实体有 ManyToOne 关系。

现在,当我尝试使用 FOSUser 登录表单登录时,出现错误:

.... SQLSTATE [42S22]:找不到列:1054“字段列表”中的未知列“t0.city”

当然 users 表中没有 city 字段,因为它是名为 city_id 的关系列。任何人都可以为我阐明为什么学说会建立这样的查询吗?我错过了什么吗?

提前致谢。

这是相关的代码部分。

摘要用户:

/**
 * @ORM\Table(name="users")
 * @ORM\Entity
 * @ORM\MappedSuperclass
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({"admin"="Admin", "customer"="Customer", "seller"="Seller"})
 */
abstract class AbstractUser extends FOSUser
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
    }
}

顾客:

/**
 * @ORM\Entity
 */
class Customer extends AbstractUser {

    ....

    /**
     * @var City $city
     * @ORM\ManyToOne(targetEntity="City", inversedBy="customers")
     */
    private $city;

    ....
}

城市:

/**
 * @ORM\Table(name="city")
 * @ORM\Entity
 */
class City
{
    ....

    /**
     * @var ArrayCollection $customers
     * @ORM\OneToMany(targetEntity="Customer", mappedBy="city")
     */
    private $customers;

    ....
}
4

2 回答 2

1

我相信可见性$city并且$customers必须受到保护,而不是私人的。

于 2013-10-07T01:01:41.410 回答
0

我很抱歉打扰。这是我打开学说缓存的错(顺便说一句,结果给我留下了深刻的印象)。在试图理解为什么会发生这种情况时,我几乎抓破了我的脑袋。幸运的是,我遇到了另一个与学说和 apc 有关的错误。瞧!这给了我一个线索去哪里看。

于 2013-10-07T16:51:02.010 回答