我在 Symfony 5 中对多对一与 MappedSuperclass 的关系有问题。我有实体 Employee、Employer ,它们扩展了 MappedSuperclass 抽象类 Person。我想创建与人员(雇员和雇主)相关的报告实体,如下所示:
/**
* @ORM\ManyToOne(targetEntity=Person::class)
*/
private $person;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试推送迁移时,我收到以下错误消息:
从 App\Entity\Raport 到 App\Entity\Person 的关系引用的列名称
id不存在。
但我在这些类中有 id 属性:
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
protected $id;
Run Code Online (Sandbox Code Playgroud)
我在 Symfony 页面示例中找到了创建界面来执行此操作,但它对我来说也不起作用。也许有人以前遇到过这个问题并且知道如何解决它。非常感谢您的任何回复。
编辑我的人课程:
**
* Abstract base class to be extended by my entity classes with same fields
*
* @MappedSuperclass
*/
abstract class Person
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
protected $id; //This property exist in Employee …Run Code Online (Sandbox Code Playgroud)