我有AbstractUser超类扩展了FOSUser,然后我有扩展AbstractUser的实体与该类有关的字段。例如,客户与城市实体有ManyToOne关系。在“字段1054未知列“t0.city”:具有ManyToOne关系的FOSUserBundle实体
现在,当我尝试FOSUser登录表单登录我收到提示:
.... SQLSTATE [42S22]:列未找到列表'
当然,用户表中没有城市字段,因为它是名为city_id的关系列。任何人都可以为我揭示为什么教义建立这样的查询吗?我错过了什么吗?
在此先感谢。
这里是相关的代码部分。
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;
....
}
请使用评论,如果它不是一个答案。 –