我有扩展FOSUser的AbstractUser超类,然后我有实体扩展AbstractUser与该类相关的字段 . 例如,Customer与City实体具有ManyToOne关系 .
现在,当我尝试使用FOSUser登录表单登录时,我收到错误:
.... SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列't0.city'
当然,users表中没有city字段,因为它是名为city_id的关系列 . 任何人都可以为我说明为什么教义 Build 像这样的查询?我错过了什么吗?
提前致谢 .
这是相关的代码部分 .
AbstractUser:
/**
* @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;
....
}
2 回答
我相信
$city
和$customers
的知名度必须受到保护,而不是私有 .对不起,我很抱歉 . 这是我的错,我打开了doctrine缓存(并且结果btw印象深刻) . 在试图理解为什么会发生这种情况时,几乎 grab 了我脑袋里的洞 . 幸运的是,我遇到了另一个错误,那就是教义和apc . 瞧!这给了我一个线索在哪里看 .